我最近合并了一个我正在与'master'分支合作的分支。我必须(仍然是一种git n00b)在推或拉时创建了一些origin/master
和origin/HEAD
分支。不幸的是,我没有记录我运行的命令。目前,我的团队在他们的主副本中有一堆代码,在我签出项目时我没有得到(即使我clone
到新位置)。
以下是Sourcetree展示的截图:
我真的需要解决这个问题,这样我才能继续努力,所以我们将非常感谢您的帮助。
答案 0 :(得分:8)
它只是一个指向master的指针,如果你愿意,它是一个符号链接。您可以通过在终端中执行以下操作(或对于Windows用户使用git bash / cygwin)安全地删除它:
git remote set-head origin -d
现在它应该消失了:
$ git branch -r
origin/master
答案 1 :(得分:7)
您看到的以origin/
开头的分支是所谓的“远程跟踪分支”。它们告诉您git从该存储库中最后一次获取的存储库origin
中分支的位置。
没什么可担心的 - 这实际上是有用的信息。如果您认为这些分支职位已过时,您可以运行:
git fetch origin
...更新它们。
在任何存储库中,HEAD
是特殊类型的ref(“symref”),它表示当前分支(或当前提交,如果您不在特定分支上)。
您可以在图表中看到,您的master
分支实际上是origin/master
之前的一次提交,因此,如果您的同事一直在master
推送origin
并且您最近跑了git fetch origin
(或类似的东西),你已经完成了他们所有的工作。但是,在你提交之前,他们会错过你的提交。
你说:
目前,我的团队在他们的主副本中有一堆代码,我在签出项目时没有得到(即使我克隆到新的位置)。
如果是这种情况,他们可能会推送到不同的分支机构,不同的存储库,或者他们根本没有推动他们的工作。