【发布时间】:2015-11-15 19:09:42
【问题描述】:
简而言之;
- 如何删除远程多个合并的远程?
更多背景;
我有一个 git repo,其中包含已合并到 master 中的数十个遥控器。我可以使用以下方法一次删除这些遥控器:
git push --delete origin myBranch-1234
但是,对于所有遥控器来说,这是一个缓慢而乏味的过程。所以我正在尝试这个命令:
git branch -r --merged | grep origin | grep -v master | xargs git push origin --delete
git branch -r --merged 列出所有合并的远程。grep origin 告诉命令包括原点。grep -v master 告诉命令排除 master。xargs git push origin --delete 告诉命令删除列表遥控器。
总的来说,我希望这会收集所有合并的遥控器并删除它们。
当我运行上述命令时,我会收到每个合并远程的以下信息;
error: unable to delete 'origin/myBranch-1234': remote ref does not exist
error: unable to delete 'origin/myBranch-1235': remote ref does not exist
error: unable to delete 'origin/myBranch-1236': remote ref does not exist
error: unable to delete 'origin/myBranch-1237': remote ref does not exist
... etc
但是这些遥控器确实存在,我可以逐个检查它们。许多网站和人们建议我运行git fetch --prune 来清理丢失的引用。这无济于事,因为所有这些遥控器都存在。
所以我问你,亲爱的堆栈交换;
- 为什么我可以删除一个遥控器,但不能删除很多?
- 我的命令正确吗?
我想我错过了一些小东西。每次我对此进行研究时,似乎我都正确地执行了此操作,但是我遇到了上述错误。
【问题讨论】:
标签: git git-remote