Git命令产生奇怪的结果

时间:2018-09-25 14:03:38

标签: git

我的项目中导致以下行为的原因可能是什么?

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

1 个答案:

答案 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 的远程跟踪名称。