こんにちは!
開発で git merge コマンドを利用してますが、よく忘れるのでまとめ。(使いそうなものだけ)
ネタ元はこちら。
基本コマンド
1. 通常のマージ
git merge <ブランチ名>
指定したブランチの変更を現在のブランチに統合します。
オプション
1. マージコミットの制御
-
--ff
(デフォルト)- 可能な場合はfast-forwardで実行
- マージコミットを作成しない
※fast-forward は、マージコミットを作成せず、単純にブランチのポインタを最新のコミットまで進める、ということらしい。
-
--no-ff
- 必ずマージコミットを作成
- ブランチの統合履歴を明確に残したい場合に使用
-
--ff-only
- fast-forwardできる場合のみマージを実行
- できない場合は中止
2. コミット制御
-
--no-commit
- マージ後のコミットを自動で行わない
- マージ結果を確認してから手動でコミットしたい場合に使用
-
--squash
- ブランチの全変更を1つのコミットにまとめる
- 履歴をシンプルに保ちたい場合に有効
3. コンフリクト発生時(発生後)のオプション
-
--abort
- マージを中止して元の状態に戻る
-
--continue
- マージを続行(解決した場合)
※コンフリクト発生に備えたものではなく、コンフリクト発生後、
git merge --abort
のように、中止するか、継続するかのオプションです。
4. その他
-
-m "<メッセージ>"
- マージコミットのメッセージを指定
-
--stat
- マージ時の変更統計を表示
- どのファイルが変更されたかを確認可能
$ git merge xxx-branch --stat
# 以下のような統計情報が表示されます
src/main.js | 25 +++++++++++++++----------
src/utils.js | 8 ++++++++
test/main.test.js | 5 +++--
3 files changed, 26 insertions(+), 12 deletions(-)
まとめ
git marge
コマンドは非常に便利ですが、コミットを作るか、履歴をどうするか等、リポジトリの運用に関わる部分があります。
開発体制にもよりますが、リポジトリの運用方針を確認し、適切に使いましょう。