ブランチ間の差分を含むプルリクエストを検索する
やりたいこと
Branch A と Branch B が存在する場合に Branch A のみに含まれるコミットを抽出して、それらを含むプルリクエストを明らかにしたい。
シェルスクリプト
補足
- 12行目の
git log --no-merges --right-only $src_branch..$dest_branch | grep -Eo ' [a-f0-9]+$'
では$dest_branch
にのみ存在するコミットのハッシュ値を抽出しています。 - 15行目の
git log --merges --oneline --reverse --ancestry-path $commit_hash...$dest_branch
は--ancestry-path
で抽出するコミットを絞り込み、さらに--reverse
することで続く17行目のhead -n 1
で直近のマージコミットのみを取り出せるようにしています。 -
git cherry-pick
を行って一部のコミットを A から B に取り込んでいる場合は当該コミットのハッシュ値が変わってしまう(新しいコミットオブジェクトとして扱われる)ので、上記スクリプトでは差分として扱われます。