動機

之前有遇過,但沒有好好認識他,來記錄一下

three-ways mrege

原本只有兩個檔案做diff,這樣沒辦法分辨要留下哪一個,只能標出哪邊不一樣

所以還需要一個共同來源的檔案,來做基準

那要怎麼確定要把哪個改動留下來? 只要其中一個檔案沒變過,另外一個卻變了,就要保留這個變化

Recursive three-ways merge

如果要merge兩個merge commit,就有可能遇到圖上的狀況,這樣無法決定要取哪一個commit,所以這裡就把這兩個commit做merge,用這個新commit做共同祖先

另外,cherry-pick也是three-ways mrege,只不過祖先是取被cherry-pick的commit的前一個

Ref

Git三路合并算法(Three Way Merge)