Gitコマンド虎の巻

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 [オプション] [値]
【オプション】
オプション説明
--fffast-forwardマージを行う
(fast-forwardマージがデフォルトなので未指定の場合は--ffを指定したとみなされる)
--no-fffast-forwardマージとなる場合でもマージコミットを作成する
--squashfast-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ブランチにチェックアウトした上でマージするのがポイントです。

備考

  • マージを実行すると、新たなコミット(マージコミット)が自動で作成されます。
  • マージを実行すると、ブランチの先頭はマージコミットに移動します。
  • 履歴を一本化したい場合は、リベースを使用してください。

関連項目