我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
你们中的任何人都知道我为什么会收到这个错误?或者我做错了什么?
我非常感谢你的帮助。
答案 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
。