显示不包含提交的分支

kay*_*243 8 git branch dvcs

git branch -a --contains <hash>给了我所有那些包含的分支hash.我想要的是什么git branch -a --no-contains <hash>.不幸的是,似乎没有完成此任务的命令,所以我认为解决方案是这样的:

git branch -a | grep -v output of(git branch -a --contains) 但我的bash不能胜任这项任务.

显示提交A的所有分支都已启用且提交B未启用?似乎适用,但这种方法似乎比必要的更复杂.

实现上述目标的最佳/最简单方法是什么?

lee*_*777 12

grep有一个-F匹配固定字符串的选项.对你正在做的事情有用.

git branch -a | grep -vF "$(git branch -a --contains <hash>)"
Run Code Online (Sandbox Code Playgroud)

不幸的是,-F将过滤掉具有部分匹配的分支名称.正如antak所建议的那样,我们可以使用comm更可靠的差异.

git branch -a | sort | comm -3 - <(git branch -a --contains <hash> | sort)
Run Code Online (Sandbox Code Playgroud)


non*_*kle 7

--no-contains标志是在Git 2.13中添加的。