2012-04-17 62 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

相關問題