【Git】基本的なマージの手順

目次

手順

今回はmastertブランチを取り込む

1. マージを取り込みたいブランチに移動する

masterブランチに移動

1
$ git checkout master

移動できたか確認、masterの左側に*がついていればOK

1
2
3
4
$ git branch

* master
t

2. マージコマンドを実行する

mastertを取り込む(mergeする)

1
$ git merge t

3.1 正常に完了した場合

表示される内容のサンプル

1
2
3
4
Updating d71dc36..bc5d29e
Fast-forward
1 | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

正常にマージできているか確認する。このような表示が出ればOK

1
2
3
4
$ git status

On branch master
nothing to commit, working tree clean

3.2 コンフリクトが発生した場合

表示される内容のサンプル

1
2
3
Auto-merging 1
CONFLICT (content): Merge conflict in 1
Automatic merge failed; fix conflicts and then commit the result.

現在の状態を確認

Unmerged pathsの部分のファイルがコンフリクトを起こしているファイルです。
今回のサンプルだと、1 というファイルがコンフリクトを起こしています。

1
2
3
4
5
6
7
8
9
10
11
12
$ git status

On branch master
You have unmerged paths.
(fix conflicts and run "git commit")
(use "git merge --abort" to abort the merge)

Unmerged paths:
(use "git add <file>..." to mark resolution)
both modified: 1

no changes added to commit (use "git add" and/or "git commit -a")

コンフリクトを解決するには

コンフリクトを起こしているファイルを開きます。そうすると、以下のような表記の部分があるはずです。

1
2
3
4
5
6
7
これはテスト文章です0
<<<<<<< HEAD
これはテスト文章です2
=======
これはテスト文章です3
>>>>>>> t
これはテスト文章です2

この<<<<<<<<<<< HEADから=========までが変更を取り込むブランチの変更==========から>>>>>>>>>>> tまでが変更を取り込まれるブランチの変更です。

変更を取り込まない方の変更点を消して、>>>,<<<,===のgitによって追加された部分をすべて消去します。

変更を取り込むブランチ(masterブランチ)の変更を適応する場合のファイルの編集例

1
2
3
これはテスト文章です0
これはテスト文章です2
これはテスト文章です2

編集後、編集したファイルをgit addしてから、コミットします。

add

1
$ git add 1

commit、マージのコミットの場合、git commitのみで自動的にコミットメッセージが生成されます。git commitを実行するとエディタが開くので(Vimの場合)ZZをタイプして、エディタを抜けます。

1
$ git commit 

開かれたエディタ画面のサンプル

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Merge branch 't'

# Conflicts:
# 1
#
# It looks like you may be committing a merge.
# If this is not correct, please run
# git update-ref -d MERGE_HEAD
# and try again.


# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# On branch master
# All conflicts fixed but you are still merging.
#

最後に正常にマージできているかgit statusで確認して、以下のような表示になればOK

1
2
3
4
$ git status

On branch master
nothing to commit, working tree clean
Author

Daiki Iijima

Posted on

2021-04-24

Updated on

2024-04-17

Licensed under