如何删除指向 git 中分支的远程符号链接?
How do I delete a remote symlink to a branch in git?
我有 git 回购如下:
$ git branch -a
* master
remotes/m/branch_a -> origin/master
remotes/origin/master
我想在不删除 master 的情况下删除指向 master 的远程符号链接。我试过:
$ git remote -v prune --dry-run
这没有任何作用。有什么建议吗?
它不是真正的 "symlink"(不是因为 git 添加了对 Windows 的支持),它是 "symbolic reference"(尽管这相当于同一件事)。
遥控器的名称是出现在 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
我有 git 回购如下:
$ git branch -a
* master
remotes/m/branch_a -> origin/master
remotes/origin/master
我想在不删除 master 的情况下删除指向 master 的远程符号链接。我试过:
$ git remote -v prune --dry-run
这没有任何作用。有什么建议吗?
它不是真正的 "symlink"(不是因为 git 添加了对 Windows 的支持),它是 "symbolic reference"(尽管这相当于同一件事)。
遥控器的名称是出现在 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