2012-04-17 63 views
7

我有多个分支,并且发现了一个将错误引入系统的提交A.随后,B在其中一个分支上进行了修复,然后合并回了主人,但当时并未对所有违规分支进行挑选。显示所有提交A的分支并且提交B不在?

我想知道是否有一个命令,将显示所有违规分支提交A但没有提交B?

我一直在使用以下,以确定提交存在于一个分支

$ git branch -r --contains=A 

,但我想尝试,并加入到这个包括像

$ git branch -r --contains=A ^--contains=B 

作为一个侧面说明我已经检查过,没有其他提交包含相同的更改,即它没有被选中到其他分支,但是一些分支已经提交了B,因为合并后它们已经与主分离,并且一些分支不在哪里它们在提交B是intr之前已经存在oduced。

此外,在已经解决问题的提交(在这种情况下为提交B)被挑选到已经给出不同提交SHA的多个分支上的情况下,检查多个提交的能力将是有用的。

回答

3

你有没有尝试过这样的:

diff <(git branch -r --contains=A) <(git branch -r --contains=B) 

它远非完美,但它可能的帮助。

+0

嗨,看起来它可能非常接近,因为你认为它并不完美。你能提供一些细节,以了解下面的内容'diff <()<()' – Cellze 2012-04-17 13:19:24

+1

这个链接解释了什么'diff <()<()':http://crashingdaily.wordpress.com/2008/03/ 06/diff-two-stdout-streams /它可能只适用于BASH。 – 2012-04-17 13:29:52

+0

'comm'命令(即'comm -23')应该对你正在做的事有用。 – antak 2015-11-27 02:41:46

相关问题