Gitでマージの競合を解消してみる

GitHubにリポジトリを作成してみる
の続き

Gitでマージの競合を解消してみる。

現状

現状、sample.txtのファイルが1つある状態。

$ cat sample.txt
111
222
333
$ git status
# On branch master
nothing to commit (working directory clean)
$ git branch
* master

ブランチ側で修正

$ git checkout -b test
Switched to a new branch 'test'
$ vi sample.txt
111
OOO
333
$ git commit -a -m 'OOOに修正'
[test bbc6338] OOOに修正
 1 files changed, 1 insertions(+), 1 deletions(-)

マスター側で修正

$ git checkout master
Switched to branch 'master'
$ vi sample.txt
111
XXX
333
$ git commit -a -m 'XXXに修正'
[master a1be055] XXXに修正
 1 files changed, 1 insertions(+), 1 deletions(-)

競合

マージすると競合する。

$ git checkout test
Switched to branch 'test'
$ git merge master
Auto-merging sample.txt
CONFLICT (content): Merge conflict in sample.txt
Automatic merge failed; fix conflicts and then commit the result.

ファイルは下記のような状態

$ cat sample.txt
111
<<<<<<< HEAD
OOO
=======
XXX
>>>>>>> master
333

解消

改めて修正する。

$ vi sample.txt
111
OOO
333
$ git commit -a -m '改めてOOOに修正'
[test 0d9acdb] 改めてOOOに修正

ログは下記のようになる。

$ git log --graph
*   commit 0d9acdbd55837ede5c604bc7dd09f8b8a4998fc1
|\  Merge: edd2104 62cdb25
| | Author: Your Name <you@example.com>
| | Date:   Tue Mar 4 10:11:26 2014 +0900
| |
| |     改めてOOOに修正
| |
| * commit 62cdb256401877b2f1a31d703789163efc32aade
| | Author: Your Name <you@example.com>
| | Date:   Tue Mar 4 10:10:45 2014 +0900
| |
| |     XXXに修正
| |
* | commit edd2104f3ad512a86f8d2aaf5c26a67c18ce2a3f
|/  Author: Your Name <you@example.com>
|   Date:   Tue Mar 4 10:10:20 2014 +0900
|
|       OOOに修正
|

マスターにマージする

ついでに、マスターにもマージしてみる

$ git checkout master
Switched to branch 'master'
Your branch is ahead of 'origin/master' by 1 commit.
$ cat sample.txt
111
XXX
333
$ git merge test
Updating 62cdb25..0d9acdb
Fast-forward
 sample.txt |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

マージされた。

$ cat sample.txt
111
OOO
333
$ git log --graph
*   commit 0d9acdbd55837ede5c604bc7dd09f8b8a4998fc1
|\  Merge: edd2104 62cdb25
| | Author: Your Name <you@example.com>
| | Date:   Tue Mar 4 10:11:26 2014 +0900
| |
| |     改めてOOOに修正
| |
| * commit 62cdb256401877b2f1a31d703789163efc32aade
| | Author: Your Name <you@example.com>
| | Date:   Tue Mar 4 10:10:45 2014 +0900
| |
| |     XXXに修正
| |
* | commit edd2104f3ad512a86f8d2aaf5c26a67c18ce2a3f
|/  Author: Your Name <you@example.com>
|   Date:   Tue Mar 4 10:10:20 2014 +0900
|
|       OOOに修正
|