はじめに
GitHubでプルリクを作成する時にコードを比較する画面(ブランチ比較ビュー)が表示されますが、このように差分が見やすい画面で表示される方法を備忘録としてまとめてみました。
ブランチの比較
-
/compare/
の後に、比較するブランチ名を...
で区切って入れることでブランチの比較ビューを表示できます。
https://github.com/{GitHubアカウント名}/{リポジトリ名}/compare/{ブランチAの名称}...{ブランチBの名称}
- ベースリポジトリとフォークしたリポジトリ(=別アカウントのリポジトリ)のブランチを比較する場合は、
{アカウント名}:{ブランチの名称}
の形式でブランチを指定します。- 例えば、
https://github.com/getify/You-Dont-Know-JS/compare/2nd-ed...THIS-IS-NOT-A-BACKUP:2nd-ed
のような形になります。
- 例えば、
https://github.com/{GitHubアカウント名}/{リポジトリ名}/compare/{ブランチAの名称}...{アカウント名}:{ブランチBの名称}
コミットの比較
- 同一ブランチの異なるコミットを比較する時は、
/compare/
の後に、比較するコミットIDを..
で区切って入れることで比較できます。- ブランチの比較時は
...
で区切りましたが、コミットの場合は..
で区切る点に注意が必要です。
- ブランチの比較時は
// ブランチAのコミットID(1)とコミットID(2)の比較
https://github.com/{GitHubアカウント名}/{リポジトリ名}/compare/{コミットID(1)}..{コミットID(2)}
- 同一ブランチ内で「〇個前のコミット」と比較する時は、
/compare/
の後に、比較するコミットIDを..
で区切って入れた後、「〇個前」の〇の数だけ「^」を付けることで比較できます。
// ブランチAのコミットID(1)と、コミットID(1)の1つ前のコミットの比較
https://github.com/{GitHubアカウント名}/{リポジトリ名}/compare/{コミットID(1)}..{コミットID(2)}^
// ブランチAのコミットID(1)と、コミットID(1)の3つ前のコミットの比較
https://github.com/{GitHubアカウント名}/{リポジトリ名}/compare/{コミットID(1)}..{コミットID(2)}^^^
- 「〇個前のコミット」は、以下のように
~N
で表現することも可能です。
// ブランチAのコミットID(1)と、コミットID(1)の3つ前のコミットの比較
https://github.com/{GitHubアカウント名}/{リポジトリ名}/compare/{コミットID(1)}..{コミットID(2)}~3
まとめ
- 一番単純な「ブランチの比較」を覚えているだけでも、かなり役に立つと思います。
- コミットの比較については、「最新のコミット」と「最新からN個前のコミット」の比較は使うことがありそうだと感じました。
- 過去のコミット同士で比較することは余りなさそうなので、私の使い方だと「最新 vs N個前のコミット」に限られそうです。