gpt4 book ai didi

git - 如何删除所有已 merge 的 Git 分支?

转载 作者:IT王子 更新时间:2023-10-29 01:07:06 29 4
gpt4 key购买 nike

如何删除已经 merge 的分支?我可以一次删除它们,而不是一个一个地删除每个分支吗?

最佳答案

注意:如果您的工作流将这些分支作为可能的祖先,您可以添加其他分支以排除,例如 master 和 dev。通常我从“sprint-start”标签分支出来,而 master、dev 和 qa 不是祖先。


首先,列出在远程 merge 的本地跟踪分支(考虑使用 -r 标志列出所有远程跟踪分支)。

git branch --merged

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

git branch --merged| egrep -v "(^\*|master|main|dev)"

如果想跳过,可以像下面这样添加到egrep命令中。分支 skip_branch_name 不会被删除。

git branch --merged| egrep -v "(^\*|master|main|dev|skip_branch_name)"

要删除所有已经 merge 到当前 check out 分支的本地分支:

git branch --merged | egrep -v "(^\*|master|main|dev)" | xargs git branch -d

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


您可以删除 merge 的本地分支:

git branch -d branchname

如果没有 merge ,使用:

git branch -D branchname

要从远程使用中删除它:

git push --delete origin branchname

git push origin :branchname # for really old git

从远程删除分支后,您可以通过以下方式修剪以摆脱远程跟踪分支:

git remote prune origin

或如另一个答案所建议的那样,通过以下方式修剪单个远程跟踪分支:

git branch -dr branchname

关于git - 如何删除所有已 merge 的 Git 分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6127328/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com