我有git repo如下:
$ git branch -a
* master
remotes/m/branch_a -> origin/master
remotes/origin/master
我想在不删除master的情况下删除远程符号链接以在那里掌握。我试过了:
$ git remote -v prune --dry-run
这没有任何作用。有什么建议吗?
答案 0 :(得分:0)
这不是一个"符号链接" (并不是因为git增加了对Windows的支持),它是一个"符号引用" (虽然这相同但是相同)。
遥控器的名称是remotes/
之后显示的内容,因此在这种情况下,遥控器名为m
。
如果您的存储库中存在符号引用,并且使用--prune
(在git fetch m
或git remote update m
上)不会丢弃它,则表示它(仍然)存在在远程m
上。即使您手动将其删除,也会在您从该遥控器上获取最新信息时返回。
然后,解决方法是在遥控器上删除它(然后再次运行git fetch -p m
)。
如果远程m
不再存在(或从未存在过),并且这个符号引用遗留了你做过的奇怪的事情(或者一些奇怪的错误),你可以简单地删除它:
git update-ref -d refs/remotes/m/branch_a