git bisect を使用して、犯人のコミットを見つけました-それはマージコミットです(私はマスターブランチにいます)
バグのあるコードを分離しようとしていますが、マージにはマージされたブランチからのいくつかのコミットが含まれており、マージ コミットとその前のコミット (マスターの以前の作業コミット) の間の完全な変更を表示する方法がわかりません。
GITでそうする方法はありますか?
git bisect を使用して、犯人のコミットを見つけました-それはマージコミットです(私はマスターブランチにいます)
バグのあるコードを分離しようとしていますが、マージにはマージされたブランチからのいくつかのコミットが含まれており、マージ コミットとその前のコミット (マスターの以前の作業コミット) の間の完全な変更を表示する方法がわかりません。
GITでそうする方法はありますか?
親と一緒に git diff を実行できます。
最初の親は SHA1^ で指定され、2 番目の親は SHA1^2 で指定されます。
git diff mergeSHA1^ mergeSHA1
git diff mergeSHA1^2 mergeSHA1
詳細については、 git diffのドキュメントを参照してください。
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