0

git bisect を使用して、犯人のコミットを見つけました-それはマージコミットです(私はマスターブランチにいます)

バグのあるコードを分離しようとしていますが、マージにはマージされたブランチからのいくつかのコミットが含まれており、マージ コミットとその前のコミット (マスターの以前の作業コミット) の間の完全な変更を表示する方法がわかりません。

GITでそうする方法はありますか?

4

2 に答える 2

1

親と一緒に git diff を実行できます。

最初の親は SHA1^ で指定され、2 番目の親は SHA1^2 で指定されます。

git diff mergeSHA1^ mergeSHA1
git diff mergeSHA1^2 mergeSHA1

詳細については、 git diffのドキュメントを参照してください。

于 2013-05-22T07:14:02.770 に答える
1

git diffコミット間の違いを表示します。あなたが望むバリエーションはおそらくこれです:

git diff [--options] <commit> <commit> [--] [<path>…]

これは、任意の 2 つの <commit> 間の変更を表示するためのものです。

したがって、あなたの場合、マージコミットのsha1をもう一方に使用し、比較したいコミットのsha1をもう一方として使用します。

git diff <sha1 of the commit to compare to> <sha1 of merge commit>

^演算子を使用して、マージ コミットの親と比較することもできます。here で説明されているようsha1^に、 が最初の親になり、2 番目の親になります。sha1^2

于 2013-05-22T07:16:29.440 に答える