2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Git】分岐したコミット履歴の作り方。どうやったらコミットを分岐できるのか?(分岐するmergeと分岐しないmergeの違い)

Last updated at Posted at 2021-02-19

git logでコミット履歴を確認しているときに、分岐した処理が表示されることがある。

git mergeしたときに発生する場合があるがが、どういった場合にコミット履歴が分岐するのかを理解することで、gitの理解を深める。

▼こういう履歴の作り方

image.png

コミット履歴をグラフと1行で表示するには、オプションで --oneline と --graph をつける。

$git log --oneline --graph


コミット履歴の分岐が発生するのは、自分のブランチと派生先のブランチの最新のコミットが完全に分岐しているとき。
image.png

**▼分岐元が共通の場合はコミット履歴は分岐しない** どちらかのコミットが共通のコミットから進んでいなければ、git mergeした後もコミット履歴は分岐しない。
image.png

##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

分岐成功。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?