特にour
変更が保持されるマージに関して、より詳細なファイル履歴を提供するためのツールがあるかどうか疑問に思っています。この問題は、例を使用して最もよく説明されます。
master
とfeature
ブランチで競合する変更を加えたとしましょう。
git checkout master
<made some change to file.txt>
git commit -a -m "Change on master"
git checkout -b feature
<made conflicting change to file.txt>
git commit -a -m "Change on feature"
にマージfeature
しmaster
て変更を保持すると、にマージする場合とgit checkout --ours file.txt
は異なる結果が得られます(その後、にマージして早送りします)。(効果的にマージすることも、不注意で行われた可能性があることを理解しています。)file.txt
master
feature
feature
master
master
--ours
mergetool
これらの両方のシナリオで使用git log -p
すると、マージコミットはの変更を報告しませんfile.txt
が、その内容はシナリオ間で異なります。現在file.txt
、の変更履歴はあいまいになっており、どのバージョンが含まれているかを知ることが困難になっていmaster
ます。実行することはできますgit log -- file.txt
が、このソリューションは拡張性がなく、どのファイルが不正なマージの一部であったかをすでに知っている必要があります。
誰かが間違ったマージ決定をした場合、どのファイルが同じに保たれたかを追跡することが困難になった場合。それ以外の場合、マージによってファイルに変更が加えられた場合、これを簡単に確認できます。