GIT:Fork git repro无法结帐分支

时间:2017-07-10 21:34:12

标签: git svn github git-checkout

我fork repo但是for的来源有多个分支,在我的fork(web)上我可以看到分支但是当我尝试在我的计算机上切换分支时,我得到以下错误:

error: pathspec 'myBranch01' did not match any file(s) known to git.

如果我检查分支是否存在:

git branch -a |grep myBranch01

我明白了:

  remotes/origin/myBranch01
  remotes/upstram/myBranch01
  remotes/upstream/myBranch01

你们中的任何人都知道我为什么会收到这个错误?或者我做错了什么?

我非常感谢你的帮助。

1 个答案:

答案 0 :(得分:2)

Git会自动为您创建一个分支,如果您自己没有,但您确实有相应的远程跟踪分支(请注意,远程跟踪分支不是分支!)。

这里的问题不在于您没有相应的远程跟踪分支。问题是您有太多对应的远程跟踪分支。

你告诉Git继续,或在必要时创建myBranch01。可以使用三个可能的myBranch01名称来创建您的名称:

  • origin/myBranch01
  • upstram/myBranch01
  • upstream/myBranch01

中间的一个显然是由于一个错字。但是,即使你删除了错误的遥控器,它会夺走所有远程跟踪分支,你仍然会留下两个可能的myBranch01来源。 Git不知道要使用哪一个,所以它会拒绝使用任何一个

解决方案是告诉 Git用于创建你的分支的那个。一旦你创建了自己的分支,其他两个远程跟踪分支名称就不那么重要了,而且有两个分支名称并不重要。

你可以:

git checkout --track origin/myBranch01

myBranch01制作您自己的origin/myBranch01,或者:

git checkout --track upstream/myBranch01

myBranch01制作您自己的upstream/myBranch01