我的项目中导致以下行为的原因可能是什么?
git fetch origin test
From github.unil.ch:gr-ci-gsg/sylvia
* branch test -> FETCH_HEAD
git checkout test
=>什么也没有发生,没有错误消息,没有分支更改,这仅在名为“ test”的分支上发生
在新的目录上,它工作正常,项目中有某种原因导致这种行为。
git --version --build-options
git version 2.19.0.windows.1
cpu: x86_64
built from commit: d96bb8bc6c636a8869140e860e72e7bdf64bd790
sizeof-long: 4
sizeof-size_t: 8
答案 0 :(得分:1)
git fetch
不会创建分支。最多只能创建或更新远程跟踪名称,例如origin/test
。因此,如果以前没有分支test
,那么以后没有分支test
。
如果您现在运行git checkout test
,则Git会寻找一个名为test
的分支,但找不到分支。在放弃并说“我不知道你的意思”之前,Git尝试了一些替代方法。一种替代方法是检查远程跟踪名称 origin/test
,如果存在,则创建一个名为test
的(本地)分支使用远程跟踪名称。但是,另一种选择是检查名为test
的文件,如果存在,请从 current 分支中重新提取它。
我的演绎能力告诉我,您有一个名为test
的文件,因此Git正在执行后者。
您可以告诉Git:请以几种方式基于origin/test
创建分支测试。此时最简单的方法可能是:
git checkout --track origin/test
假设您的git fetch
已创建origin/test
(对于Git版本2.19,我认为它可能已经创建了,但是要确保确实如此,只需运行git fetch origin
,而无需任何其他参数,以获取和创建或更新origin
分支的 all 的远程跟踪名称。