HEAD,master,origin的git概念是什么?

use*_*159 178 git

当我正在学习git时,我不断遇到HEAD,master,origin这些术语,我不确定它们之间的区别.如果我理解正确,HEAD总是等于最新版本?如果是这样,那是整个存储库的最新版本,还是特定分支或标记的最新版本?这太令人困惑了.我已经阅读了很多这方面的教程以及分支/合并等内容,但仍然无法解决这个问题.

Mat*_*eer 208

我强烈推荐Scott Chacon出版的"Pro Git"一书.花时间阅读它,同时探索实际的git repo.

HEAD:当前提交你的回购.大多数时候都HEAD指向当前分支中的最新提交,但情况并非如此.HEAD真的只是意味着"我的回购目前指向的是什么".

如果提交HEAD引用不是任何分支的提示,则称为"分离头".

master:git在首次创建repo时为您创建的默认分支的名称.在大多数情况下,"主"意味着"主要分支".大多数商店都有人推动掌握,而主人被认为是回购的最终观点.但是发布分支也很常见,因为发布分支是由master发布的.您的本地仓库有自己的主分支,几乎总是跟随远程仓库的主人.

origin:git为主远程仓库提供的默认名称.你的盒子有自己的仓库,你最有可能推出一些你和你的同事所推动的远程仓库.这个远程仓库几乎总是被称为原产地,但并非必须如此.

HEAD是git中的官方概念.HEAD总是有明确的含义.master并且origin是通常在git中使用的常用名称,但它们不一定是.

  • 不清楚你所说的回购(本地或远程)是什么意思。通常,您的答案使用表达式,而无需事先解释它们。 (3认同)
  • @JingHe 你读过整本书吗?是不是真的值得吗?我的意思是我们正在谈论阅读了 500 多页的内容,这对我来说似乎有点太多了...... (2认同)

svi*_*ick 37

HEAD这不是最新版本,它是目前的修订版.通常,它是当前分支的最新版本,但它不一定是.

master 是一个通常赋予主分支的名称,但它可以被称为其他任何东西(或者可能没有主分支).

origin是通常给予主遥控器的名称.remote是另一个可以从中拉出并推送到的存储库.通常它在某些服务器上,如github.

  • @MattGreer:如果你查看更旧的东西(例如像`git checkout v1.1`这样的标签),那么你的HEAD就会变成该标签的提交.它可能不是最新的提交. (11认同)
  • 你能举个例子说明 HEAD 是最新的而不是最新的吗?我以前从未见过。或者你的意思是它可能不是最新的,因为你的分支在它跟踪的远程分支后面? (2认同)

Pio*_*rak 10

虽然这并没有直接回答这个问题,但是有很多免费的书可以帮助你学习名为ProGit的基础知识 .如果你更喜欢死木版本,你可以从亚马逊购买它.

  • 您只认为您不需要一本C ++书;) (10认同)
  • 这个问题没有要求一本书!我还不清楚,为什么我需要一本git书,当我不需要一本C++时. (5认同)