2022/02/05

GitHubのcompareはドットの2つ版と3つ版があるのか

お仕事でやっているプロジェクトで、根っこに近いブランチを変更する作業が発生した。
revert してやってもなんとかなりそうだったけど、二転三転しているので仕切り直してもよいかと思い、差し替えたい手前でブランチを作って、あとはいるところだけ cherry-pick したりして、最終的には現行版のブランチとだいたい同じようなコードになる予定だった。

なので最終確認と思って現行版ブランチと変更版ブランチをGitHubのcompareで見てみたのだが、なんか思ったような差分の出方じゃなかった。
単純なファイル比較ではないということか?


実例がないと分かりづらいのでリポジトリを作った。

https://github.com/hirokuma/GithubCompare

ブランチはこんな感じ。

image

feature/morning-early

image

feature/evening-dark

image

この2つを compare すると、1行目だけ一致して、それ以降の差分がそれぞれ表示されると思っていた。

https://github.com/hirokuma/GithubCompare/compare/feature/evening-dark...feature/morning-early

image

左側の方は差分が表示されない。
ちなみに左右を逆にしても同じようなものだった。

 

https://github.com/hirokuma/GithubCompare/compare/feature/morning-early...feature/evening-dark

image

GitHub の compare はドットが2つでやる場合と3つでやる場合があるそうだ。
↑のはドットが3つのパターンだ。

2つだとどうなるかというと・・・。

https://github.com/hirokuma/GithubCompare/compare/feature/morning-early..feature/evening-dark

image

そうそう、こういうのを期待してたんだよ!

このドット数による違いはGitHubの仕様なのかと思っていたけど git 自体の仕様なのか。

Git - git-diff Documentation
https://git-scm.com/docs/git-diff#git-diff-emgitdiffemltoptionsgtltcommitgtltcommitgt--ltpathgt82308203

 

プルリクではドット3つのを見せているそうだから、今まで思ってなかったマージをしていなかったか急に不安になるね。