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

如何在git中删除指向分支的远程符号链接?,git,symlink,Git,Symlink,我有如下吉特回购协议: $ git branch -a * master remotes/m/branch_a -> origin/master remotes/origin/master 我想在不删除master的情况下删除指向master的远程符号链接。我试过: $ git remote -v prune --dry-run 这没用。有什么建议吗?它不是一个真正的“符号链接”(不是因为git增加了对Windows的支持),它是一个“符号参考”(尽管这相当于一件事) 远程设备

我有如下吉特回购协议:

$ git branch -a
* master
  remotes/m/branch_a -> origin/master
  remotes/origin/master
我想在不删除master的情况下删除指向master的远程符号链接。我试过:

$ git remote -v prune --dry-run
这没用。有什么建议吗?

它不是一个真正的“符号链接”(不是因为git增加了对Windows的支持),它是一个“符号参考”(尽管这相当于一件事)

远程设备的名称是在
remotes/
之后出现的任何名称,因此在本例中,远程设备的名称为
m

如果符号引用存在于存储库中,并且使用
--prune
(在
git fetch m
git remote update m
上)不会放弃它,则表示它(仍然)存在于远程
m
上。即使您手动删除它,当您从远程设备获取最新信息时,它也会返回

因此,解决方法是在远程删除它(然后再次运行
git fetch-pm

如果remote
m
已不存在(或从未存在过),并且此符号引用是您所做的一些奇怪的事情(或一些奇怪的错误)留下的,您可以简单地将其删除:

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