複数ブランチをマージするときのポイント
- 変更量の多いブランチから取り込みたい
- 変更量を確認するのに、マージ前に git diff
–stat を使うと便利 - 2つ目以降に取り込むブランチの変更量は徐々に減っていくため、取り込みば取り込むほど次第に楽になっていく。
- ただし、これは精神的なもので、マージ内容、結果には影響を及ぼさない。
- コンフリクト時は、git checkout –conflict=diff3
でコンフリクトマーカーを書き直す。
自分たちの分 (ours)、相手側 (マージしようとしているブランチ) の分 (theirs)、共通 (両方のブランチの共通の祖先) の分 (base) の3つを表示する。
コマンド
# 変更量の統計を表示 git diff HEAD origin/feature --stat # コンフリクトマーカーを書き直す。 # 通常のマーカーである "ours" と "theirs" に加え、"base" も表示 git checkout --conflict=diff3 .
stat の実践
$ git diff HEAD origin/fiature1 --stat app/controllers/cont1.php | 193 +++++++++++++++------ app/controllers/cont2.php | 13 +- app/models/action_cont1_create.php | 13 ++ .../models/action_cont1_delete.php | 12 ++ app/models/action_cont1_index.php | 52 ++++++ app/views/cont1/create.php | 142 ++++++++------- app/views/cont1/index.php | 164 ++++++++++++----- app/views/cont1/edit.php | 2 +- html/js/cont1.js | 116 +++++++++++++ 9 files changed, 547 insertions(+). 160 deletions(-) $ $ git diff HEAD origin/fiature2 --stat app/controllers/cont1.php | 100 +++++- app/controllers/cont2.php | 216 +--------------------- app/models/action_cont1_edit.php | 72 ++++++++ app/views/cont1/edit.php | 15 +- app/views/cont1/index.php | 3 +- 5 files changed, 178 insertions(+). 228 deletions(-) $
origin/feature1 の変更量が多いですわね♪
ですので origin/feature1 を最初にマージし、次に origin/feature2 をマージしたら楽かしら、と感じましたわ。
おわりに
コンフリクトマーカーの書き直しについては、以前投稿した次のページを参照くださいませ。
以上です。