即使它出现在git branch

时间:2016-04-22 16:21:04

标签: git

git branch -r --merged | grep 123

输出

起源/特征/ 123-一些特征

git branch -r --merged | grep 123 | xargs git branch -d

OUTPUT 错误:找不到分支'origin / feature / 123-some-feature'。

为什么我不能删除这个远程分支?

修改 对不起,我的帖子应该更清楚了(当我写这篇文章的时候我正在开会)。我在本地没有任何这些分支,我正在尝试清理远程存储库以删除所有合并的分支(我现在通过过滤到'123'来测试它。)

我想获得已经合并的远程分支的过滤(通过grep)列表,以便我可以在本地查看它们以确保我不会删除我想要保留的任何分支。

然后我想用| xargs git branch -d再次执行它,以实际从远程存储库中删除这些分支。

我认为根据发布的答案和其中一条评论,这就是我想要的内容?

git branch -r --merged | grep 123 | xargs git push origin --delete

2 个答案:

答案 0 :(得分:3)

您无法删除它,因为它是远程分支。它存在于远程存储库中,而不是存储在本地存储库中。如果要将其删除<远程上的,您可以:

git push --delete origin feature/123-some-feature

但请注意,这会影响远程存储库上分支的可用性。

答案 1 :(得分:0)

您不应该使用git branch -r删除远程分支。
使用git push origin :your/branch/name(确保在branchname之前输入冒号: