HEAD和GIT上的Origin有什么区别?

时间:2019-07-12 10:43:29

标签: git github master

我通过从命令行使用GIT将一些项目文件推送到GitHub上的存储库中。我修改了它们,并在本地文件夹中添加了一个新文件。我提交了它(我做了git add newFilegit commit -m "some text"),因此现在没有什么要提交的了,工作树很干净。我输入了Git log,并得到了以下信息:

commit 532d55b88be3c8cc21ee1f89e08db3fc6c9c0631 (HEAD -> master)
Author: Rob <ennesimo@hotmail.it>
Date:   Fri Jul 12 12:13:55 2019 +0200

    example

commit b9719578146a01a3029e1bf3c6d15b3eb2c5473b
Author: Rob <ennesimo@hotmail.it>
Date:   Fri Jul 12 11:58:17 2019 +0200

    corrected orthography in the low_cost_hotels.json

commit aa8e758e852bb4dde1127b0e2fa256b1f5d67b29
Author: Rob <ennesimo@hotmail.it>
Date:   Fri Jul 12 11:40:04 2019 +0200

    version 2

commit 37e0e292242384afbee80260611ad021ed89ac37 (origin/master)
Author: Rob <ennesimo@hotmail.it>
Date:   Thu Jul 11 12:10:10 2019 +0200

    initial project version - 11 july 2019

如您在此处看到的那样,第一个提交报告(origin/master),最后一个提交(HEAD -> master)。为什么会有这样的差异?我假设origin/master是我在GitHub上的在线存储库,而(HEAD -> master)表示我在PC上的本地文件夹中创建了一个新文件,然后将其发送到master,即发送到GitHub上的远程存储库,这是正确的推理吗?

您能更准确地向我解释“大师”和“头”代表什么,为什么要这样命名吗?

2 个答案:

答案 0 :(得分:3)

您看到的是origin/master当前指向最下面的提交37e0e292,而HEAD指向最新的最上面的提交532d55b8。所有这些意味着,由于您已将本地分支与远程服务器同步,因此您又进行了三个本地提交。

请记住,origin/master是本地 tracking 分支。这意味着它的存在是为了在实际的GitHub存储库上跟踪它被视为master分支的最新状态。这是有道理的,因为在缺少任何其他信息的情况下,远程计算机现在在本地master版本的{em> 之后的三个commit中。

如果要通过git fetch同步远程分支,则git log的输出可能会更改(或可能不会更改)。

答案 1 :(得分:1)

HEAD 是对当前签出分支中最后一次提交的引用。 HEAD-> master 的提交是本地 master 分支指向的。 origin / master 指的是远程 master 分支。将提交推送到远程必须分支后,Git将指示 origin / master 具有提交。

enter image description here