Cos'e il three-way
Il diff a due vie mostra cosa e cambiato tra due versioni. Il diff a tre vie considera anche l'antenato comune, lasciando a Git di decidere se una regione e stata cambiata da un lato, dall'altro o da entrambi.
Ispezionare un conflitto
<<<<<<< HEAD
our version
=======
their version
>>>>>>> feature
git config merge.conflictStyle diff3
git checkout --conflict=diff3 path/to/file
Stage dell'index
git ls-files -u
git show :1:path
git show :2:path
git show :3:path
Strategie
git checkout --ours path/to/file
git checkout --theirs path/to/file
git checkout --merge path/to/file
git merge -X theirs feature
git merge -X ignore-all-space feature
git merge -X renormalize feature
Mergetool
git config merge.tool meld
git mergetool
Antenato ricorsivo (ort)
Quando due branch condividono piu basi di merge (criss-cross), la strategia ort (default da Git 2.34) fonde virtualmente le basi prima per calcolare un antenato sintetizzato.
Errori comuni
Assumere che l'antenato nei marker corrisponda al commit precedente — e la base di merge, spesso lontana nel passato.