med*_*rds 7 git version-control
TLDR:如果X作为远程分支存在,那么git checkout X应该创建它的本地分支.就我而言,对于一个分支,它没有.
远程存储库有一个master, release,和其他一些分支(比方说refactor-update)我这样做:
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 似乎认为xyzingit checkout xyz是文件夹,而不是分支。
我必须执行以下操作才能xyz第一次将工作树切换到分支:
git checkout -t origin/xyz
显然,这会添加几行.git/config(也许还有其他配置文件)。之后,我可以通过调用/在xyz和之间切换。mastergit checkout xyzgit checkout master
当我在根文件夹中并git checkout xyz在克隆存储库后立即调用时,git 不执行任何操作,也不给出任何响应。当我cd转到一个子文件夹以使该文件夹xyz不再在范围内然后调用 时git checkout xyz,git 抱怨:error: pathspec 'xyz' did not match any file(s) known to git。