概要
GitHubのプルリクで差分を見る時、意図しないものが出たり/出なかったり、挙動がよく分からなかった。
手元でコマンドで差分確認したかった。
出せるようになったので共有記事にしておく。
ドキュメント
スリードット比較では、両方のブランチ (マージ ベース) の最新共通コミットとトピック ブランチの最新バージョンの差分が表示されます。
コマンド
featureをmainに入れるプルリクの場合。
base_commit=$(git merge-base feature main)
head_commit=$(git rev-parse feature)
git diff $base_commit...$head_commit
これで差分が出ます。
解説
base_commit: featureとmainの最新共通コミットを取得している。
head_commit: featureブランチの最新のコミットを取得している。
これらのスリードット比較で差分を出している。
補足
ちなみにGitHub CLIのghコマンドでも似たようなことができます。
gh pr diff プルリクのURL
使い方/オプションはこちら。
Usage: gh pr diff [<number> | <url> | <branch>] [flags]
Flags:
--color string Use color in diff output: {always|never|auto} (default "auto")
--name-only Display only names of changed files
--patch Display diff in patch format
-w, --web Open the pull request diff in the browser
手っ取り早く見るにはこちらのコマンドも十分実用的ですが、
こちらだと--name-onlyくらいしかオプションがなく、--numstatが見れないなど、若干不便です。
まとめ
GitHubのプルリクで表示される差分を手元で表示する方法を紹介しました。