git merge
git mergeは、現在の作業ブランチに他のブランチの更新内容を統合して、履歴を合流させるコマンドです。
現在の作業ブランチにmergeコマンドで指定したブランチが取り込まれるため、 例えばmasterブランチにeda01ブランチを取り込みたい場合は、現在のブランチをmasterブランチに移動した上でmergeを実行します。
イメージ
【マージ前】
E---F (topicブランチ)
/
A---B---C---D (masterブランチ)
【マージ後】
E------F (topicブランチ)
/ \
A---B---C---D---G (masterブランチ)
構文
- (構文)
- git merge [オプション] [値]
オプション | 説明 |
---|---|
--ff | fast-forwardマージを行う (fast-forwardマージがデフォルトなので未指定の場合は--ffを指定したとみなされる) |
--no-ff | fast-forwardマージとなる場合でもマージコミットを作成する |
--squash | fast-forwardマージとならない場合でもマージコミットを作成しない |
--help | コマンドのヘルプを表示する |
サンプル
現在の作業ブランチにブランチ「eda01」の内容を取り込む
git merge eda01
現在の作業ブランチにブランチ「eda01」をfast-forwardマージを行う
git merge --ff eda01
「git merge eda01」でも同じです。
fast-forwardの関係でない場合は、マージコミットが作成されます
現在の作業ブランチにブランチ「eda01」を必ずマージコミットを作成してマージする
git merge --no-ff eda01
現在の作業ブランチにブランチ「eda01」をマージコミットを作成しないでマージする
git merge --squash eda01
この場合、手動でコミットする必要があります。
masterブランチにeda01とeda02をマージする
git checkout master
git merge eda01
git merge eda02
masterブランチにチェックアウトした上でマージするのがポイントです。
備考
- マージを実行すると、新たなコミット(マージコミット)が自動で作成されます。
- マージを実行すると、ブランチの先頭はマージコミットに移動します。
- 履歴を一本化したい場合は、リベースを使用してください。
関連項目
- git rebase:ブランチを統合して履歴を付け替える