LoginSignup
6
10

More than 5 years have passed since last update.

2つのブランチ間でmergeした場合の状態遷移について整理

Posted at

merge commitやらFastFowardやらマージについてある程度理解できてきたので、図を混ぜつつ自分なりに整理してみようと思います。

検証

初期登録

テストリポジトリを作成して、ファイルの初期登録を行います。

$ mkdir test;cd $_
$ git init
$ echo 'aaa' > a.txt;echo 'bbb' > b.txt
$ git add .
$ git commit -m 'init'

masterのファイル内容

a.txt
aaa
b.txt
bbb

git log

$ git log master --oneline
c06bbc0 init

git merge_1.png

devブランチを作成してdevにcommit

$ git checkout -b dev
$ echo 'devブランチで修正' >> b.txt
$ git add .
$ git commit -m 'update b.txt'

devのファイル内容

a.txt
aaa
b.txt
bbb
devブランチで修正

git log

$ git log master --oneline
c06bbc0 init

$ git log dev --oneline
531732d update b.txt
c06bbc0 init

git merge_2.png

masterにcommit

$ git checkout master
$ echo 'masterブランチで修正' >> a.txt
$ git add .
$ git commit -m 'update a.txt'

masterのファイル内容

a.txt
aaa
masterブランチで修正
b.txt
bbb

git log

$ git log master --oneline
17f9c80 update a.txt
c06bbc0 init

$ git log dev --oneline
531732d update b.txt
c06bbc0 init

git merge_3.png

devmasterの内容をmerge

$ git checkout dev
$ git merge master
### Fast-Forwad出来ないので適当なコミットコメント設定
$ git add .
$ git commit -m 'update a.txt'

devのファイル内容

a.txt
aaa
masterブランチで修正
b.txt
bbb
devブランチで修正

git log

$ git log master --oneline
17f9c80 update a.txt
c06bbc0 init

$ git log dev --oneline
b2a61a2 Merge branch 'master' into dev
17f9c80 update a.txt
531732d update b.txt
c06bbc0 init

git merge_4.png

devにcommit

$ echo 'ccc' >> c.txt
$ git add .
$ git commit -m 'add c.txt'

devのファイル内容

a.txt
aaa
masterブランチで修正
b.txt
bbb
devブランチで修正
c.txt
ccc

git log

$ git log master --oneline
17f9c80 update a.txt
c06bbc0 init

$ git log dev --oneline
576d44b add c.txt
b2a61a2 Merge branch 'master' into dev
17f9c80 update a.txt
531732d update b.txt
c06bbc0 init

git merge_5.png

masterdevの内容をmerge

$ git checkout master
$ git merge dev

masterのファイル内容

a.txt
aaa
masterブランチで修正
b.txt
bbb
devブランチで修正
c.txt
ccc

git log

$ git log master --oneline
576d44b add c.txt
b2a61a2 Merge branch 'master' into dev
17f9c80 update a.txt
531732d update b.txt
c06bbc0 init

$ git log dev --oneline
576d44b add c.txt
b2a61a2 Merge branch 'master' into dev
17f9c80 update a.txt
531732d update b.txt
c06bbc0 init

git merge_6.png

以上。

6
10
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
6
10