如果您使用git branch -d branchname
,如果分支名称引用了您历史中较早的提交,它将删除分支名称,或者告诉您需要使用-D
。我经常创建分支,这些分支稍后会被推送到master,因此可以通过此条件删除。有没有一种简单的方法可以列出所有指向master早期提交的分支,也就是说,git不介意只使用-d
选项删除的分支?如果它同时适用于所有分支机构,而不仅仅是主分支机构,则可以获得加分。
我有82个本地分支,我知道现在已经有相当多的分支可以安全地删除了,但我不想花时间去尝试每个分支。
发布于 2010-03-01 12:04:19
尝试:
$ git checkout master # or whatever branch you might compare against ...
$ git branch --no-merged
$ git branch --merged
如果使用--
,则只会列出合并到命名提交中的分支(即,其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
发布于 2010-03-02 22:29:24
git show-branch
是一个鲜为人知但非常有用的工具,它直观地显示每个分支唯一的提交。一开始可能很难破译,但是一旦你理解了输出,它就很有用了。有一个简短但很好的introduction可用。
描述
半直观地显示了从以s或s命名的提交(或refs /head和/或refs/tag下的所有refs)开始的提交祖先图。它一次不能显示超过29个分支和提交。
https://stackoverflow.com/questions/2353804
复制相似问题