git中HEAD、master、origin的概念是什么?

在学习git的过程中,我不断遇到HEAD、master、origin这些术语,我不确定它们之间有什么区别。如果我理解正确的话,HEAD总是等于最新的版本?如果是的话,这是整个存储库的最新版本,还是特定分支或标记的最新版本?这太让人困惑了。我已经阅读了许多关于这方面的教程以及分支/合并等内容,但仍然无法理解它。

135119 次浏览

我强烈推荐这本书Scott Chacon的《Pro Git》。花点时间认真阅读它,同时探索实际的git回购。

:当前提交你的回购是在。大多数情况下HEAD指向当前分支中的最新提交,但情况不一定如此。HEAD实际上只是表示“我的回购当前指向的是什么”。

如果提交HEAD引用的对象不是任何分支的顶端,这被称为“分离头”。

: git在第一次创建repo时为你创建的默认分支的名称。在大多数情况下,“master”指的是“主要分支”。大多数商店都让每个人都向主人推销,主人被认为是回购的最终观点。但是对于发布分支来说,脱离master来发布也是很常见的。本地回购有自己的主分支,它几乎总是跟随远程回购的主分支。

起源: git给你的主远程repo的默认名称。你的盒子有自己的回购,你很可能会推出一些远程回购,你和你所有的同事都推到那里。这个远程回购几乎总是被称为原点,但它并不一定要这样。

HEAD是git中的一个官方概念。HEAD总是有一个定义明确的含义。masterorigin是通常在git中使用的常见名称,但它们不一定必须是。

HEAD不是最新的版本,它是当前的版本。通常,它是当前分支的最新版本,但也不一定非得如此。

master是一个通常用于主分支的名称,但它可以被称为其他任何名称(或者可以没有主分支)。

origin是通常用于主遥控器的名称。Remote是另一个可以从中提取和推送的存储库。通常是在某个服务器上,比如github。

虽然这并不能直接回答问题,但有一本很棒的免费书籍可以帮助你学习基础知识 ProGit。如果你更喜欢死木版本而不是比特集合,你可以从亚马逊购买它