如何删除所有已合并的Git分支?

我有很多Git分支机构。如何删除已经合并的分支?是否有一个简单的方法来删除他们全部而不是一个地删除他们?



莫回无
浏览 2279回答 3
3回答

呼唤远方

最新情况:如果您的工作流有可能的祖先,您可以添加其他分支来排除这些分支,如master和dev。通常我从一个“sprint-start”标记和master中分离出来,dev和qa并不是祖先。首先,列出在远程中合并的所有分支。git branch --merged您可能会看到一些不想删除的分支。我们可以添加一些参数来跳过我们不想删除的重要分支,比如主或开发。下面的命令将跳过主分支和其中包含的任何内容。git branch --merged| egrep -v "(^\*|master|dev)"如果要跳过,可以将其添加到egrep命令中,如下所示。树枝skip_branch_name不会被删除。git branch --merged| egrep -v "(^\*|master|dev|skip_branch_name)"若要删除已合并到当前签出分支的所有本地分支,请执行以下操作:git branch --merged | egrep -v "(^\*|master|dev)" | xargs git branch -d您可以看到主人和dev被排除在外,以防它们是祖先。可以通过以下方式删除合并的本地分支:git branch -d branchname如果未合并,请使用:git branch -D branchname若要在旧版本的Git中从远程删除它,请使用:git push origin :branchname在最新版本的Git中使用:git push --delete origin branchname从远程删除分支后,可以通过以下方式修剪以消除远程跟踪分支:git remote prune origin或者,如另一个答案所示,修剪单个远程跟踪分支,使用:git branch -dr branchname希望这能帮上忙。

德玛西亚99

若要删除已合并的远程上的所有分支,请执行以下操作:git branch -r --merged | grep -v master | sed 's/origin\//:/' | xargs -n 1 git push origin在Git的最新版本中git branch -r --merged | grep -v master | sed 's/origin\///' | xargs -n 1 git push --delete origin
打开App,查看更多内容
随时随地看视频慕课网APP