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).
関連の記事