【问题标题】:How to switch to another user's branch using git bash如何使用 git bash 切换到另一个用户的分支
【发布时间】:2019-04-09 16:55:39
【问题描述】:

我正在处理一个 GitHub 项目,我正在尝试从 master 切换到另一个用户的分支。他们的分支领先于 master 并且有多个更改。无论我尝试什么,我都无法切换到他们的分支并获得他们的更改。

我尝试了许多 gitbash 命令,包括 checkout、pull、clone、fetch。

git clone link
git checkout branchName
git fetch branchName
git fetch

我希望“git checkout branchName”切换到其他用户的分支,但它只是切换到一个全新的同名本地分支。 “git fetch branchName”只是返回一个错误。

我已经使用 git 多年,我觉得自己像个白痴,我无法弄清楚这一点。我也无法在网上的任何地方找到解决方案。

【问题讨论】:

  • 没有“其他用户的分支”这样的东西。你的仓库是你的,你所有的分支都是你的。您的 Git 将通过 your 远程跟踪名称(例如,origin/theirbranch)记住其他 Git 的分支,您可以创建自己的分支,您可以 name theirbranch如果你愿意,但它仍然是你的分支,它指向与origin/theirbranch 相同的提交。 Git 实际上是关于 commits 的:分支名称只存在于 remember 提交。所以不要太担心名字。
  • 正如 EncryptedWatermelon 建议的那样,您可以通过分支名称以外的其他名称检查提交,例如,通过远程跟踪名称 origin/theirbranch。 Git 将此状态称为分离的 HEAD。你在commit,而不是在任何分支上。你在 no 分支上。没关系! Git 将无法记住您所做的 new 提交,因为分支名称是 Git 记住提交的方式。
  • (这不是一张完全准确的图片——为此,我们必须进入 Git 的 reference 概念,其中分支名称只是一种——但它应该了解总体思路:Git 实际上是关于 commits。)
  • @torek 你错了。这是一个由另一个用户拥有的项目,有 6 个人在积极工作。你刚刚做出了一个居高临下的回答,完全没有抓住我的问题的重点。
  • 这并不意味着居高临下,而且确实如此:一旦您克隆了一个存储库,该存储库就是您的,您可以随意使用。你的 Git 的名字都是你的。远程跟踪名称——origin/fooupstream/bar——也是你的,它们只是从其他一些独立的 Git 存储库中获取的。对特定远程运行 git fetch 会更新您的远程跟踪名称,同时还可以获得他们拥有的任何您没有的提交。

标签: git repository git-bash


【解决方案1】:

git checkout <other_users_remote>/branchNamegit checkout -b branchName <other_users_remote>/branchName 创建跟踪分支

您是否添加了其他人的遥控器? git remote -v

【讨论】:

    【解决方案2】:

    我想通了。似乎没有一个答案能理解我的情况,所以我会重申。我正在与多个其他用户一起开发一个项目。他们都有自己的分支,每个分支都有提交,都来自 master。我想切换到另一个用户的分支,然后帮助他们处理当前的分支。

    为此,我需要执行以下命令:

    git fetch origin branchName:branchName
    

    【讨论】:

      猜你喜欢
      • 2018-05-17
      • 2022-12-18
      • 1970-01-01
      • 2013-03-10
      • 1970-01-01
      • 1970-01-01
      • 2017-12-18
      • 1970-01-01
      相关资源
      最近更新 更多