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
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
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
devにmasterの内容を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
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
masterにdevの内容を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
以上。





