Git ブランチを作成しマージする(Git Bash)

Git Bashでブランチを作成しマージする手順です。
(確認環境:Windows10,git 2.19.1)

目次

概要 ブランチとマージとは
手順 1.ブランチを作成する(git branch)
2.ブランチを移動する(git checkout)
3.ログを確認する(git log)
  4.ブランチをマージする(git merge)
  5.コンフリクト時の対応方法
  6.ブランチを削除する(git branch -d)

ブランチとマージとは

ブランチ

ブランチとは、枝(branch)を意味し、本体から分岐させて管理できる機能です。
上記図のtestsbranchにコミットした内容は、本体のmasterには影響を与えません。

本体は、masterブランチと呼ばれます。
ブランチを作る、ブランチを切る等言います。

マージ

マージとは、あるブランチから他のブランチを取り込む機能です。
上記図では、masterブランチからtestbranchブランチを取り込んで(マージ)います。

マージする時に同じ行を修正していた場合は、コンフリクト(競合)が発生してマージできません。
その場合は、ファイルを手動で修正してからマージします。

 

1.ブランチを作成する(git branch)

テスト用のブランチを新規作成します。

1.環境の準備

git initを実行し、テスト用のファイルを作成します。
サンプルでは、EドライブのTest1フォルダ配下にtest1.txtというファイルを作成しました。

ファイル内は以下のように記述しコミットまで行います。

こんにちは

 

2.ブランチを作成

git branch ブランチ名

git branchコマンドは、ブランチを作成します。

git branch testbranch

testbranchというブランチを作成しています。

 

3. ブランチを確認

git branch

git branchコマンドは、ブランチの状況を確認します。

git branch
* master
  testbranch

2行目のアスタリスクは、現在使用しているブランチを示します。

 

2.ブランチを移動する(git checkout)

git checkout ブランチ名

git checkoutコマンドは、作成したブランチに移動します。

git checkout testbranch
Switched to branch 'testbranch'

1行目は、testbranchというブランチに移動しました。

git branchコマンドで移動したこと確認します。

git branch
  master
* testbranch

 

3.ログを確認する(git log)

git log

git logは、ログを確認します。

git log
commit 9fc53f53a159e3d71a6406760f3f372bbdde7502 (HEAD -> testbranch, master)
Author: testuser123abc <test@example.com>
Date:   Sun Nov 25 09:13:04 2018 +0900

    1st

ブランチを移動する前に行ったcommitがあることわかります。

 

4.ブランチをマージする(git merge)

testbranchブランチでファイルを修正してmasterブランチにマージします。

ファイルの修正

vimコマンドでtestbranchのファイルを修正します。vim test1.txt
修正前

こんにちは

修正後

こんにちは
ハロー

git addとgit commitでコミットまで行います。

git add .
git commit -m "syuusei"

 

masterに移動

git checkout masterで、masterに戻ります。

git checkout master
Switched to branch 'master'

 

マージ処理を行う

git merge ブランチ名

git merge ブランチ名でマージ処理を行います。

git merge testbranch
Updating 9fc53f5..fe9a85e
Fast-forward
 test1.txt | 1 +
 1 file changed, 1 insertion(+)

vimコマンドで確認するとブランチで行った修正が反映されています。vim test1.txt

 

5.コンフリクト時の対応方法

確認としてコンフリクトの状態を作りそれを解消します。

1.vimコマンドでそれぞれのファイルを修正してコンフリクトの状態にします。
vim test1.txt

修正前

こんにちは
ハロー

修正後(master)

こんにちは123
ハロー

修正後(testbranch)

こんにちは456
ハロー

git addとgit commitでコミットまで行います。

git add .
git commit -m "syuusei"

 

2.masterで、git mergeを行うとコンフリクトが発生します。

git merge testbranch
Auto-merging test1.txt
CONFLICT (content): Merge conflict in test1.txt
Automatic merge failed; fix conflicts and then commit the result.

3行目は、コンフリクト(CONFLICT)の文字があります。

 

3.vimでファイルを開くと以下のようになっています。vim test1.txt

<<<<<<< HEAD
こんにちは123
=======
こんにちは456
>>>>>>> testbranch
ハロー

 

4.今回はtestbranchの方を採用するとします。不要な行を手動で削除します。
上記ファイルをvimで開いて1,2,3,5行目を行削除し保存します。

こんにちは456
ハロー

 

5.git addとgit commitを行って完了です。

git add .
git commit -m "syuusei"

 

6.ブランチを削除する(git branch -d)

git branch -d ブランチ名

ブランチを削除する場合は、git branch -d ブランチ名を入力します。

git branch -d testbranch
Deleted branch testbranch (was 9eb9e4f).

関連の記事

gitをWindows10にインストールする手順
Git リポジトリにコミットする流れ(Git Bash)

△上に戻る