首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何删除所有已经合并的Git分支?

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

Stack Overflow用户
提问于 2011-05-25 23:54:36
回答 38查看 710.1K关注 0票数 2.3K

我有很多Git分支。如何删除已经合并的分支?有没有一种简单的方法可以把它们全部删除,而不是逐个删除?

EN

回答 38

Stack Overflow用户

回答已采纳

发布于 2011-05-26 00:40:19

更新:

如果您的工作流将其他分支作为可能的祖先,则可以添加要排除的其他分支,如master和dev。通常我是从一个"sprint-start“标签分支出来的,master、dev和qa都不是祖先。

首先,列出在remote中合并的本地跟踪分支(您可以考虑使用-r标志来列出其他答案中建议的所有远程跟踪分支)。

代码语言:javascript
复制
git branch --merged

您可能会看到一些不想删除的分支。我们可以添加几个参数来跳过我们不想删除的重要分支,比如master或develop。以下命令将跳过主分支和其中包含dev的所有内容。

代码语言:javascript
复制
git branch --merged| egrep -v "(^\*|master|main|dev)"

如果您想跳过,可以将其添加到egrep命令中,如下所示。分支skip_branch_name不会被删除。

代码语言:javascript
复制
git branch --merged| egrep -v "(^\*|master|main|dev|skip_branch_name)"

要删除已合并到当前检出分支中的所有本地分支,请执行以下操作:

代码语言:javascript
复制
git branch --merged | egrep -v "(^\*|master|main|dev)" | xargs git branch -d

您可以看到,master和dev被排除在外,以防它们是祖先。

您可以使用以下命令删除合并的本地分支:

代码语言:javascript
复制
git branch -d branchname

如果未合并,请使用:

代码语言:javascript
复制
git branch -D branchname

要从远程使用中删除它,请执行以下操作:

代码语言:javascript
复制
git push --delete origin branchname

git push origin :branchname    # for really old git

从遥控器中删除分支后,可以使用以下命令修剪以消除远程跟踪分支:

代码语言:javascript
复制
git remote prune origin

或者,按照另一个答案的建议,使用以下方法修剪单个远程跟踪分支:

代码语言:javascript
复制
git branch -dr branchname
票数 3.6K
EN

Stack Overflow用户

发布于 2014-02-18 23:08:26

我只是稍微扩展一下Adam的答案:

通过运行git config -e --global将其添加到Git配置中

代码语言:javascript
复制
[alias]
    cleanup = "!git branch --merged | grep  -v '\\*\\|master\\|develop' | xargs -n 1 -r git branch -d"

然后,您可以删除执行简单git cleanup的所有本地合并分支。

票数 238
EN

Stack Overflow用户

发布于 2014-07-04 00:18:35

您将希望从这些命令中排除mastermaindevelop分支。

本地git清除:

代码语言:javascript
复制
git branch --merged | grep -v '\*\|master\|main\|develop' | xargs -n 1 git branch -d

远程git清除:

代码语言:javascript
复制
git branch -r --merged | grep -v '\*\|master\|main\|develop' | sed 's/origin\///' | xargs -n 1 git push --delete origin

同步远程分支的本地注册表:

代码语言:javascript
复制
git fetch -p
票数 107
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6127328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档