我的git分支在Sourcetree中显示'origin / master'和'origin / HEAD',我不知道如何合并这两个

时间:2012-07-17 16:59:09

标签: git branching-and-merging

我最近合并了一个我正在与'master'分支合作的分支。我必须(仍然是一种git n00b)在推或拉时创建了一些origin/masterorigin/HEAD分支。不幸的是,我没有记录我运行的命令。目前,我的团队在他们的主副本中有一堆代码,在我签出项目时我没有得到(即使我clone到新位置)。

以下是Sourcetree展示的截图:

2 branches

我真的需要解决这个问题,这样我才能继续努力,所以我们将非常感谢您的帮助。

2 个答案:

答案 0 :(得分:8)

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

  1. 导航到您的存储库
  2. 执行:git remote set-head origin -d
  3. 现在它应该消失了:

    $ git branch -r
    origin/master
    

答案 1 :(得分:7)

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

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

git fetch origin

...更新它们。

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


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

你说:

  

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

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