【问题标题】:Which is the difference between HEAD and Origin on GIT?GIT上的HEAD和Origin有什么区别?
【发布时间】:2023-03-04 03:38:01
【问题描述】:

我从命令行使用 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 -&gt; master)。为什么会有这样的差异?我想origin/master是我在GitHub上的在线存储库,而(HEAD -&gt; master)表示我在我的电脑上的本地文件夹上创建了一个新文件,然后将它发送到master,即到GitHub上的远程存储库,是推理正确吗?

您能否更准确地向我解释一下“Master”和“HEAD”代表什么以及它们为什么要这样命名?

【问题讨论】:

标签: git github master


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    您看到的是origin/master 当前指向底部提交37e0e292,而HEAD 指向最新的顶部提交532d55b8。这意味着,由于您已将本地分支与远程同步,因此您已经进行了三个额外的本地提交。

    请记住,origin/master 是一个本地跟踪 分支。这意味着它的存在是为了跟踪它认为是实际 GitHub 存储库上 master 分支的最新状态。这是有道理的,因为在没有任何其他信息的情况下,远程现在是三个提交master 的版本之后在本地。

    如果您要通过git fetch 同步远程分支,那么git log 的输出可能会改变(也可能不会)。

    【讨论】:

    • (检查信用参考:stackoverflow.com/a/4697054/6888123)没有“本地跟踪分支”之类的东西。但是,准确地说,在本地开发人员的计算机上存在“本地”“远程跟踪分支”,在这种情况下是源/主
    猜你喜欢
    • 1970-01-01
    • 2013-09-25
    • 2021-07-04
    • 2011-01-14
    • 2011-02-10
    • 2012-09-09
    • 2018-06-25
    • 2021-03-07
    • 2023-03-23
    相关资源
    最近更新 更多