首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >列出可以安全删除的git分支

列出可以安全删除的git分支
EN

Stack Overflow用户
提问于 2010-03-01 12:00:24
回答 2查看 4.7K关注 0票数 31

如果您使用git branch -d branchname,如果分支名称引用了您历史中较早的提交,它将删除分支名称,或者告诉您需要使用-D。我经常创建分支,这些分支稍后会被推送到master,因此可以通过此条件删除。有没有一种简单的方法可以列出所有指向master早期提交的分支,也就是说,git不介意只使用-d选项删除的分支?如果它同时适用于所有分支机构,而不仅仅是主分支机构,则可以获得加分。

我有82个本地分支,我知道现在已经有相当多的分支可以安全地删除了,但我不想花时间去尝试每个分支。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-03-01 12:04:19

尝试:

$ git checkout master # or whatever branch you might compare against ...
$ git branch --no-merged
$ git branch --merged

来自git branch documentation

如果使用--

,则只会列出合并到命名提交中的分支(即,其tip提交可以从命名提交到达的分支)。使用--no--仅列出未合并到命名提交中的分支。如果参数缺失,则默认为HEAD (即当前分支的尖端)。

编辑:

要为每个分支显示这一点,您可以这样做:

示例repo:

o <--- experimental
|
o
|
o <--- next
|
o
|
o <--- master
|
o----o <--- broken
|
o
|


$ for branch in `git branch --no-color --verbose | \
sed -e 's/*//' | awk '{print $1}'`; \
do echo "[$branch]"; git checkout -q $branch; git branch --merged; done

[broken]
* broken
[master]
* master
[next]
master
* next
[experimental]
master
next
* experimental
票数 40
EN

Stack Overflow用户

发布于 2010-03-02 22:29:24

git show-branch是一个鲜为人知但非常有用的工具,它直观地显示每个分支唯一的提交。一开始可能很难破译,但是一旦你理解了输出,它就很有用了。有一个简短但很好的introduction可用。

描述

半直观地显示了从以s或s命名的提交(或refs /head和/或refs/tag下的所有refs)开始的提交祖先图。它一次不能显示超过29个分支和提交。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2353804

复制
相关文章

相似问题

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