git checkout分支但仍然在主人

时间:2015-07-06 12:32:32

标签: git

我通常使用此命令切换分支

git fetch && git checkout branch

在那之后,我经常检查我是否正在通过git info工作在我想要的分支上,这将突出显示我正在处理的本地分支(分支名称旁边有一个星号*)。

我今天遵循相同的模式,但即使在我运行git fetch && git checkout branch之后,git仍然存在于分支中。命令行中有 no error logs 。但在此之后,git info会显示类似的内容(本地分支仍然是,而不是我要切换到的分支线程)。

    ## Remote Branches:

    origin/HEAD -> origin/master
    origin/master
    origin/threads

    ## Local Branches:

    * master

与正常情况相比(当git checkout branch按预期工作时) - 奇怪的是,有两个origin/master,第一个origin/HEAD -> origin/master似乎正常;我不确定第二个。

这里有一些奇怪的东西,但我还没弄明白。

2 个答案:

答案 0 :(得分:1)

看起来我有一个分歧的主人。

奇怪的是,此命令未显示任何错误日志。

$ git fetch && git checkout threads    # threads is the name of the branch

但是,

    $ git fetch && git checkout master
    Switched to branch 'master'
    Your branch and 'origin/master' have diverged,
    and have 7 and 3 different commits each, respectively.
    (use "git pull" to merge the remote branch into yours)

    $ git pull origin master
    From <git_repo>        # <git_repo> is the URL of the repo
    * branch            master     -> FETCH_HEAD
    Auto-merging <file>    # <file> is the filename in question 
    CONFLICT (add/add): Merge conflict in <file>
    Automatic merge failed; fix conflicts and then commit the result.

在我手动解决上的冲突后,现在git fetch && git checkout threads工作正常,我可以切换到分支线程

至于为什么我在第一个中有一个分歧的主人,我不确定 - 也许是因为某些git rebase命令我没有做好

答案 1 :(得分:0)

请注意,git fetch只会提取.git/config文件中配置的引用 - 它可能无法满足您的期望。如果您还没有设置远程跟踪分支,那么它就不会知道从远程分支机构下来。

此外,&#39; git checkout master&#39;将始终切换到名为master的分支,而不是远程主机恰好是什么。因此,您已经创建了一个名为&#39; master&#39;以上不会改变它。