"BOKU"のITな日常

還暦越えの文系システムエンジニアの”BOKU”は新しいことが大好きです。

GitHubのコンペアボタンのある画面の表示方法と各種コンペア機能の使い方など

GitHubのコンペア機能は強力かつ便利なのですが、通常のGitHubの画面から直観的に使う感じではありません。

自分もすぐ忘れるので、使い方の備忘もかねてまとめておきます。

f:id:arakan_no_boku:20190811144704p:plain

 

Gitのコンペア画面の出し方

 

リポジトリの画面を探しても「コンペア」ボタンはありません(笑い)

f:id:arakan_no_boku:20190817154808p:plain

こうやって、対象のリポジトリを表示しているURLに「/compare」を直接うちこんでやる必要があります。

例えば、こんな感じ。

https://github.com/arakan-boku/bokurepo/compare

そうすると、そのリポジトリのコンペア画面が開きます。

f:id:arakan_no_boku:20190817155112p:plain

baseとcompareの2つのボタンが表示されてます。

基本的には、baseで指定した内容と、compareで指定した内容の差分をとって表示してくれるわけです。

 

基本はブランチ同士の比較

 

このリポジトリには、masterとdevelopの2つのブランチがあります。

状態としては、開発中でまだリリースしていない想定です。

baseをmasterブランチのままで、compareのボタンのところで、developを選びます。

f:id:arakan_no_boku:20190817155619p:plain

すると、masterとdevelopの差分が表示されます。

f:id:arakan_no_boku:20190817155939p:plain

 

次はリリースバージョン間の比較

 

ここで、developの変更をmasterに反映して、新しいバージョン0.1.1としてリリースすることにします。

ここでポイントはリリースするときに、かならずバージョン番号を示すタグをつけておくことです。

今回もこんな感じでタグをつけて、GitHubにプッシュしてます。

git tag -a 0.1.1 -m "for learn add 1 file and change readme"

タグ同士を比較するときは、baseとcompareでタグを表示させればよいわけです。

テキストボックスにタグ名を入力すると選択肢がでてくるので、それを選びます。

 

compareを変更。

f:id:arakan_no_boku:20190817161700p:plain

baseを変更。

f:id:arakan_no_boku:20190817160921p:plain

てな感じで以下のようになります。

f:id:arakan_no_boku:20190817161912p:plain

ちなみに。

compare→baseの順で上記は変更しています。

なぜかはわからないのですが、base→compareの順で変更した時にうまく差分がとれないことがあって、そうしています。

たまたま・・だとおもうのですが、それ以来試してません。

もし、うまくいかない場合は compare→baseの順で指定する・・を試してみるのもいいかもしれません。

 

他にもいっぱいできるみたいです

 

上記は、自分が実際に使うものだけ例にあげました。

でも、他にもいろいろできます。

こんな感じで1日前と比較するとかは選択肢がでているので簡単にできますし。

f:id:arakan_no_boku:20190817162641p:plain

それ以外にも、URLで「...」とドット3つで比較対象を続けて書くと、2週間前と比較するとか時間単位で比較できたりします。

上記の1日前も実際はURLにこんな感じに指定されているだけです。

https://github.com/arakan-boku/bokurepo/compare/master@%7B1day%7D...master

この「1day」の部分を「2week」に書き換えるとかで行ける感じです。

そのやり方および他の詳しい検索方法は、こちらのヘルプにいろいろ書かれてます。

help.github.com

でも。

自分は使ったことがありません。

だって、前回のコミットとの差分は普通にコミットの一覧で、メッセージをクリックすれば以下のように見えますし。

f:id:arakan_no_boku:20190817163708p:plain

リリースとか、比較が必要になるときにタグをちゃんとつけていれば、実用的に困ることはあんまりないです。

まあ、個人的には・・ですが。

ということで、今回はこんなところで。

ではでは。