git logでコミット履歴を確認しているときに、分岐した処理が表示されることがある。
git mergeしたときに発生する場合があるがが、どういった場合にコミット履歴が分岐するのかを理解することで、gitの理解を深める。
▼こういう履歴の作り方
コミット履歴をグラフと1行で表示するには、オプションで --oneline と --graph をつける。
$git log --oneline --graph
コミット履歴の分岐が発生するのは、自分のブランチと派生先のブランチの最新のコミットが完全に分岐しているとき。
**▼分岐元が共通の場合はコミット履歴は分岐しない** どちらかのコミットが共通のコミットから進んでいなければ、git mergeした後もコミット履歴は分岐しない。
##gitで分岐を作成する
#新しいブランチを作成
$ git checkout -b test
Switched to a new branch 'test'
#ブランチの確認
$ git branch
master
* test
この時点ではそれぞれ最新のコミットが共通しているため、各ブランチで別々の変更をコミットする。
※注意: 同じファイルを編集するとconflictすることがあるので、別のファイルを作成し編集する。
▼masterブランチ
新規ファイルstyle.css
を作成しコミット。
$git add style.css
$git commit -m "add style.css"
$ git log --oneline --graph
* f9c877b (HEAD -> master) add style.css
* 0060ce9 (main/master) first ci
▼testブランチ
新規ファイルindex.html
を作成しコミット。
$git add index.html
$git commit -m "add index.html"
$ git logg
* 026105e - (HEAD -> test) add index.html
* 0060ce9 (main/master) first ci
**▼git merge (at master)**
それぞれのブランチのコミットが完全に分岐したので、masterブランチに移動して、git merge
する
$ git merge test
Merge made by the 'recursive' strategy.
index.html
$ git log --oneline --graph
* 4fb9b74 (HEAD -> master) Merge branch 'test'
|\
| * 026105e (test) add index.html
* | f9c877b add style.css
|/
* 0060ce9 (main/master) first ci
分岐成功。