简而言之;
- 如何删除远程多个合并的遥控器?
更多背景;
我有一个带有数十个遥控器的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
告诉命令排除主服务器。
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
清理丢失的参考。因为所有这些远程控制器都存在,所以它什么也不做。
所以我问你,亲爱的堆栈交换;
- 为什么可以删除一个遥控器,但不能删除多个遥控器?
- 我的命令正确吗?
我想我缺少了一些小东西。每次我研究此问题时,似乎都正确地做到了,但是却遇到了以上错误。
--prune
?在我看来,这非常令人误解