2 つのブランチ間で以前のマージ コミットを見つけるにはどうすればよいですか?
前回リリース ブランチをマスター ブランチにマージしてからのマスター ブランチの変更を確認したいと思います。最後のブランチ以降のリリース ブランチの変更を確認するには、次のように簡単です。git diff ...release
ただし、最後のマージ前のすべての変更も含まれているため、明らかにgit diff release...機能しません。したがって、それを渡すには最後のマージのコミットIDが必要だと思いますgit diff
git log --reverse --ancestry-path `git merge-base HEAD release`.. \
--format=format:%H|head -n1
動作するようで、 で使用できますがgit diff $(...)、非常に複雑に思えます。もっと簡単な解決策はありますか?
例
I
/ \
A1 B1
\ |
| M
| |
A2 B2
これIが最初のコミットです。A[12]はリリース コミットでB[12]あり、マスター コミットです。M以前のコミットです。この例では、最後のマージとマスターの間の変更は、B2 によって導入された変更のみです。は1をgit merge-base A2 B2返します。の変更を含みます。したがって、問題は、一般的なより複雑なケースで M を見つけて、手動で を見つけなくても実行できるようにする方法です。Agit diff B2 A1B1git diff M B2M