はじめに
知らない言葉が出てきたのでまとめました。
普段SourceTreeを使用してるのであんま細かいことわかってないんですよね。
コマンド使うと深いところまで理解できます。。。(多分)
fast-forward mergeとは?
日本語訳だと「早送りマージ」
branchをマージする際、マージするbranchの分岐元がそのマージするbranchその人だった場合、
ただ単にポインタを前に進めるだけ、、になる。
ただ単にポインタを前に進めるだけってなに?
A:マージコミットが発生しない!
よくよく考えたら普段マージするとき2種類パターンがあることに気付かされます。
その2種類とは?
マージコミットが発生するパターン
と
マージコミットが発生しないパターン
です。
わかりづらいので実際にやってみた
Fast-forward mergeの例
ryo_oda$ git merge feature/test
Updating f7870e8..d923e55
Fast-forward
test.md | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
gitさん「ほいほいmergeね...?」
gitさん「よくよく見たら...派生元のmaster派生してから変わってないやんけ、、」
gitさん「単純にmasterの先頭をfeature/testの先頭のところにもってくればええか。。」
って感じです。(多分)
Fast-forwardじゃない mergeの例
ryo_oda$ git merge feature/2018-10-04
Auto-merging test.md
CONFLICT (content): Merge conflict in test.md
Automatic merge failed; fix conflicts and then commit the result.
ってこれはAuto-mergingに失敗してしまったパターンです。。
とくにコンフリクトがない場合、ここでmergeコミットが作られます。正確に言うと「Auto-merge」です。
なんとなく見えてきましたね!😝
最近のコメント