19

我最近将我正在处理的一个分支与“主”分支合并。我必须(仍然是一个 git n00b)在推动或拉动创建 anorigin/master和 anorigin/HEAD分支时做了一些事情。不幸的是,我没有记录我运行的执行此操作的命令。目前,我的团队在他们的主副本中有一堆代码,当我检查项目时我没有得到这些代码(即使我clone到了一个新位置)。

这是 Sourcetree 显示的屏幕截图:

2 家分店

我真的需要解决这个问题,这样我才能继续工作,所以任何帮助都将不胜感激。

4

2 回答 2

15

它只是一个指向 master 的指针,如果你愿意的话,它是一个符号链接。您可以通过在终端中执行以下操作来安全地删除它(或 git bash/cygwin 对于 Windows 用户):

  1. 导航到您的存储库
  2. 执行:git remote set-head origin -d

现在它应该消失了:

$ git branch -r
origin/master
于 2014-07-30T08:49:40.333 回答
8

您看到的以开头的分支origin/是所谓的“远程跟踪分支”。origin它们会告诉您上次 git 从该存储库获取分支在存储库中的位置。

没什么好担心的——这实际上是有用的信息。如果您认为这些分支职位已经过时,您可以运行:

git fetch origin

...更新它们。

在任何存储库中,HEAD是一种特殊类型的 ref(“symref”),代表当前分支(或当前提交,如果您不在特定分支上)。


您可以在图表中看到您的master分支实际上是在 之前的一次提交origin/master,因此如果您的同事一直在推进master并且origin您最近运行git fetch origin(或类似的东西),那么您已经完成了他们的所有工作。但是,在您推送之前,他们将错过您的提交。

你说:

目前,我的团队在他们的主副本中有一堆代码,当我检查项目时我没有得到这些代码(即使我克隆到一个新位置)。

如果是这种情况,他们可能正在推送到不同的分支、不同的存储库,或者他们根本没有推送他们的工作。

于 2012-07-17T17:15:09.600 回答