TLDR:如果 X 作为远程分支存在,则git checkout X
应该创建它的本地分支。就我而言,对于单个分支来说,情况并非如此。
远程存储库有一个master,
release,
和其他一些分支(比如refactor-update
)
I do:
git clone WHATEVER/repo.git
git checkout release
但我没有收到正常的分支切换消息,也没有收到本地分支跟踪origin/release
创建(根据man
页面为git checkout
)。我还在master.
请注意,如果我这样做git checkout refactor-update
一切都按预期进行。
这可以在其他计算机上重现(尽管相同的平台和可能相同的 git 版本)。我(出于绝望,不是因为我认为它会起作用),删除了release
分支并用备份替换它master
分别在行为没有改变的情况下(git push origin :release && git push origin master:release
)
我对可能导致问题的原因感到困惑。我的怀疑是git checkout
似乎不认识这个词release
由于某种原因,这使得它很像执行git checkout
。为了尝试跟进这一点,在另一个存储库中,我创建了一个发布分支来查看它是否是保留字或其他内容,但它肯定就在这个存储库中。看起来并没有什么异常的地方.git/config
.
git版本:1.8
就我而言,问题是我的项目根目录中有一个与分支同名的文件夹。 Git 似乎认为xyz
in git checkout xyz
是文件夹,而不是分支。
我必须执行以下操作才能将工作树切换到分支xyz
首次:
git checkout -t origin/xyz
显然,这增加了几行.git/config
(也许还有其他配置文件)。之后,我可以在之间切换xyz
and master
只需致电git checkout xyz
/ git checkout master
.
当我在根文件夹中并调用git checkout xyz
在我克隆存储库后,git 不执行任何操作,也不给出任何响应。当我cd
到子文件夹,以便该文件夹xyz
不再在范围内,然后调用git checkout xyz
,git 抱怨:error: pathspec 'xyz' did not match any file(s) known to git
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)