为什么我的git log输出在使用远程时显示origin和origin / master,origin / HEAD。这些条目对我来说似乎是多余的

时间:2015-07-03 09:37:22

标签: git git-branch

我正在浏览3.1 Git Branching - Branches in a Nutshell

中的git分支概念

我正在玩虚拟存储库。

git log --oneline --decorate给出以下输出。

$ git log --oneline --decorate
d0006a6 (HEAD, origin, tag: Test1, origin/master, origin/HEAD, master) Minor change 
1437545 Minor change
69a948a Added Makefile
617ffeb Spell correction
6bf9b3f First commit
$ git branch 
* master
$ git remote --v
origin  /home/adil/work/git/repo/ (fetch)
origin  /home/adil/work/git/repo/ (push)

我不清楚有多个带有origin和master的条目。像origin,origin / master,origin / HEAD,master

URL中的示例输出给出:

f30ab (HEAD, master, testing) add feature #32 - ability to add new

同样地,我期望输出为:

d0006a6 (HEAD, tag: Test1, master) Minor change

有一点可能是差异点,在我们的例子中,它有远程。所以我认为这就是为什么起源即将来临,但为什么起源,起源/主人,起源/ HEAD 3额外的条目?

1 个答案:

答案 0 :(得分:2)

这是你必须了解的关于git的基本知识。

  • origin是你的遥控器。它可以被命名为其他任何东西,但主遥控器按惯例命名为原点

  • origin/master是名为origin的远程主分支或主分支。同样,名称大师只是惯例,它可以是其他任何东西。

  • origin/HEAD是您的git指向的当前位置。如果你有多个分支,如master和develop,你可以checkout开发。实际上,该行动将指出HEAD的发展。可以像使用git命令中的任何其他分支一样使用HEAD。它只是指向您当前所在分支的指针。

修改

也许我误解了这个问题,所以更多的解释

显示其中的三个,以便您了解我上面解释的三件事的状态。

    提交中的
  • origin/HEAD告诉您默认原始分支指向该提交
  • master告诉您,您的本地仓库是在该特定提交
  • origin/master告诉您这些更改已被推送到远程,并且您的遥控器中的master分支与您的本地仓库保持同步

如果您尚未将更改推送到远程仓库,则origin/HEADorigin/master将位于上次推送到远程仓库的提交