2
0

More than 1 year has passed since last update.

GitHubの差分の出し方、完全に理解した。

Posted at

概要

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のプルリクで表示される差分を手元で表示する方法を紹介しました。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0