简而言之;
- 如何删除远程多个已合并的远程分支?
更多背景信息;
我有一个带有多个已合并为主分支的Git存储库。 我可以使用以下命令逐个删除这些远程分支:
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
告诉命令将包括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
来清除丢失的引用,但由于所有这些远程仓库都存在,所以这没用。
所以我想问,亲爱的Stack Exchange;
- 为什么我可以删除一个远程仓库,但不能删除多个?
- 我的命令是正确的吗?
我认为我少了一些小东西。每次我研究这个问题时,似乎我做得很正确,但我却得到了上述错误。
--prune
参数进行获取,为什么它不会更新呢?在我的看法中,这相当具有误导性。 - dave0688origin/
,这个问题已经在其他答案中得到描述和解决。 - CupawnTae