当引用指针指向两个不同的提交时是什么意思?

问题描述 投票:0回答:1

我在下图中看到heroku/master指向两个不同的提交,我不确定为什么会这样!enter image description here

这是在我运行命令git branch -f heroku/master 67520d9f之后发生的。有人可以解释吗?

git heroku atlassian-sourcetree
1个回答
0
投票

这里的问题是,您创建了自己的名为heroku/master的(本地)分支,同时还具有拼写为heroku/master的远程跟踪名称1

技术上,分支完整名称是refs/heads/heroku/master远程跟踪名称完整名称是refs/remotes/heroku/master。这些全名是不同的,因此可以将两者区分开。但这令人困惑,好像您参加的聚会中每个人都被称为布鲁斯:

  • [布鲁斯:布鲁斯!你好吗?你见过布鲁斯吗?
  • [布鲁斯:不,布鲁斯,你好!你怎么知道布鲁斯?
  • [布鲁斯:我们俩都在布鲁斯工作了一段时间。

解决此问题的方法很简单:为分支机构使用其他一些名称。例如,将heroku/master分支重命名为h-master

git branch -m heroku/master h-master

现在您将masterh-master作为(本地)分支名称,并为一个远程跟踪名称保留heroku/master


1 Git称这些远程跟踪分支名称。它们是您的Git对其他Git上的分支名称的记忆。您的Git会记住另一个名为remote的Git。然后,您的Git将获取其分支名称(例如master),并将其更改为在您自己的工作中使用。更改后的名称的前面贴有遥控器的名称,因此,如果您有一个名为fred的遥控器,而另一个Git有一个名为wilma的分支,则最终以fred/wilma作为遥控器-跟踪名称。

最常用的远程名称是origin,因此大多数人都会看到一个本地master和一个远程跟踪名称origin/master。一些Git工作流程要求使用第二个遥控器,通常命名为upstream。 Heroku工作流程要求使用名为heroku的遥控器,这就是为什么要使用名为heroku的遥控器的原因。由于其他名为heroku的Git有一个名为master的分支,因此您的Git将创建heroku/master作为herokumaster的远程跟踪名称。

© www.soinside.com 2019 - 2024. All rights reserved.