为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Git
莫回无 2019-07-13 16:18:41
我有很多Git分支机构。如何删除已经合并的分支?是否有一个简单的方法来删除他们全部而不是一个地删除他们?
查看完整描述

3 回答

?
呼唤远方

TA贡献1856条经验 获得超11个赞

最新情况:

如果您的工作流有可能的祖先,您可以添加其他分支来排除这些分支,如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

希望这能帮上忙。


查看完整回答
反对 回复 2019-07-13
?
德玛西亚99

TA贡献1770条经验 获得超3个赞

若要删除已合并的远程上的所有分支,请执行以下操作:

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



查看完整回答
反对 回复 2019-07-13
  • 3 回答
  • 0 关注
  • 2268 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信