当我正在学习git时,我不断遇到HEAD,master,origin这些术语,我不确定它们之间的区别。如果我理解正确,HEAD总是等于最新版本?如果是这样,那是整个存储库的最新版本,还是特定分支或标记的最新版本?这太令人困惑了。我已经阅读了很多这方面的教程以及分支/合并等内容,但仍然无法解决这个问题。
答案 0 :(得分:188)
我强烈推荐这本书"Pro Git" by Scott Chacon。花时间阅读它,同时探索实际的git repo。
HEAD :当前提交你的回购邮件。大多数时候HEAD
指向当前分支中的最新提交,但情况并非如此。 HEAD
实际上只是意味着“我的回购目前指向的是什么”。
如果提交HEAD
引用的不是任何分支的提示,则称为“分离头”。
master :首次创建回购时git为您创建的默认分支的名称。在大多数情况下,“主”意味着“主要分支”。大多数商店都有人推动掌握,而主人被认为是回购的最终观点。但是发布分支也很常见,因为发布分支是由master发布的。您的本地仓库有自己的主分支,几乎总是跟随远程仓库的主人。
origin :git为您的主远程仓库提供的默认名称。你的盒子有自己的仓库,你最有可能推出一些你和你的同事所推动的远程仓库。那个远程仓库几乎总是被称为原产地,但并非必须如此。
HEAD
是git中的官方概念。 HEAD
始终具有明确的含义。 master
和origin
是git中常用的常用名称,但它们不一定是。
答案 1 :(得分:34)
HEAD
不是最新版本,而是当前版本。通常,它是当前分支的最新版本,但不一定是。
master
是一个通常赋予主分支的名称,但它可以被称为其他任何东西(或者可能没有主分支)。
origin
是通常给予主遥控器的名称。 remote是另一个可以从中拉出并推送到的存储库。通常它在某些服务器上,如github。
答案 2 :(得分:9)