如何在git中删除分支的远程符号链接?

时间:2016-03-18 13:58:36

标签: git symlink

我有git repo如下:

$ git branch -a
* master
  remotes/m/branch_a -> origin/master
  remotes/origin/master

我想在不删除master的情况下删除远程符号链接以在那里掌握。我试过了:

$ git remote -v prune --dry-run

这没有任何作用。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

这不是一个"符号链接" (并不是因为git增加了对Windows的支持),它是一个"符号引用" (虽然这相同但是相同)。

遥控器的名称是remotes/之后显示的内容,因此在这种情况下,遥控器名为m

如果您的存储库中存在符号引用,并且使用--prune(在git fetch mgit remote update m上)不会丢弃它,则表示它(仍然)存在在远程m上。即使您手动将其删除,也会在您从该遥控器上获取最新信息时返回。

然后,解决方法是在遥控器上删除它(然后再次运行git fetch -p m)。

如果远程m不再存在(或从未存在过),并且这个符号引用遗留了你做过的奇怪的事情(或者一些奇怪的错误),你可以简单地删除它:

git update-ref -d refs/remotes/m/branch_a