我正在浏览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额外的条目?
答案 0 :(得分:2)
这是你必须了解的关于git的基本知识。
origin
是你的遥控器。它可以被命名为其他任何东西,但主遥控器按惯例命名为原点
origin/master
是名为origin
的远程主分支或主分支。同样,名称大师只是惯例,它可以是其他任何东西。
origin/HEAD
是您的git指向的当前位置。如果你有多个分支,如master和develop,你可以checkout开发。实际上,该行动将指出HEAD的发展。可以像使用git命令中的任何其他分支一样使用HEAD。它只是指向您当前所在分支的指针。
修改强>
也许我误解了这个问题,所以更多的解释
显示其中的三个,以便您了解我上面解释的三件事的状态。
origin/HEAD
告诉您默认原始分支指向该提交master
告诉您,您的本地仓库是在该特定提交origin/master
告诉您这些更改已被推送到远程,并且您的遥控器中的master
分支与您的本地仓库保持同步如果您尚未将更改推送到远程仓库,则origin/HEAD
和origin/master
将位于上次推送到远程仓库的提交