見出し画像

GitHubのコミット履歴から現在のブランチに関する情報を得る #235日目

GitHubでブランチを作成して作業していると、現在のブランチがどのブランチから派生させたものだったか確認したくなることがあると思います。そんな時に使える便利なコマンドの紹介です。

まず前提として、以下のようにmainブランチからcdブランチを派生させ、cdブランチからcd2ブランチを派生させました。

main
     `- cd
          `- cd2

使うコマンドは以下です。

$ git log --graph
もしくは
$ git log --graph --oneline

このコマンドを使うと、コミットの履歴をグラフ状で見ることができ、そのブランチがどういう変遷を辿ってきたものなのか調べてることができます。「--oneline」が入っていると、詳細情報が割愛されるので全体が見やすくなります。

例えばcdブランチにいる時に「--graph」を使うと以下のように出力されます。「*」はコミットを表し、「|\」はマージを表しています。

& git log --graph --oneline


* a4c67c0 (HEAD -> cd, origin/cd2, origin/cd, cd2) Add space in COPY
* db5586f Change the version of uses in steps
* 4cbd9f2 Change repository name to Lowercase
* e51e1ce Update publish.yml
* 3325573 Update to X in STEP and README.md
*   d1ce1be Merge pull request #1 from YM202110/cd
|\
| * 2091ef6 Update to 3 in STEP and README.md
| * 353815d Create Dockerfile
| * f4df3fc Update to 2 in STEP and README.md
| * 73f88d0 Create publish.yml
| * e3c27c2 Update to 1 in STEP and README.md

また、ハッシュ値の横にある()は参照名(ref name)と言われ、それぞれ以下を意味しています。

HEAD ->
現在のコミット履歴を参照しているブランチの先頭を表しています。ここではローカルのcdブランチにいる、ということを表しています。HAEDが移動することで使用するブランチが変更されます。

https://backlog.com/ja/git-tutorial/stepup/03/

origin/cd2, origin/cd
リモートリポジトリ名originのcd2ブランチ、cdブランチの最新のコミットの場所を指しています。ただしリモートで変更が行われた場合、それを同期しないと最新情報にならないので注意です。

つまりここでは、cd, origin/cd, cd2, origin/cd2が全て同じ場所にいる(同じファイルになっている)ことを示していると言えます。


ちなみにmainブランチで実行してみると以下のようになります。

$ git log --graph --oneline


*   49dc1e5 (HEAD -> main) Merge pull request #5 from YM202110/cd
|\
| * a4c67c0 (origin/cd2, origin/cd, cd2, cd) Add space in COPY
* | e31e4ad Merge pull request #4 from YM202110/cd
|\|
| * db5586f Change the version of uses in steps
* | b645af9 Merge pull request #3 from YM202110/cd
|\|
| * 4cbd9f2 Change repository name to Lowercase
* | 5e333c1 Merge pull request #2 from YM202110/cd
|\|
| * e51e1ce Update publish.yml
|/
* 3325573 Update to X in STEP and README.md
*   d1ce1be Merge pull request #1 from YM202110/cd
|\
| * 2091ef6 Update to 3 in STEP and README.md
| * 353815d Create Dockerfile

ブランチの変遷っぽくなりましたね。
こうやって調べていけば、今のブランチがどこから派生したものなのか明らかにすることができます。

ここまでお読みいただきありがとうございました!!


参考


この記事が気に入ったらサポートをしてみませんか?