4 dosya var:
$LOCALBirleştirdiğiniz daldaki dosya; size gösterildiğinde birleştirme işlemine dokunulmaz
$REMOTEBirleştirdiğiniz daldaki dosya; size gösterildiğinde birleştirme işlemine dokunulmaz
$BASE$ LOCAL ve $ REMOTE'un ortak atası, yani. iki şubenin dikkate alınan dosyayı yönlendirmeye başladığı nokta; size gösterildiğinde birleştirme işlemine dokunulmaz
$MERGEDKısmen birleştirilmiş dosya, çakışmalarla; bu, birleştirme işleminin dokunduğu tek dosyadır ve aslında size hiç gösterilmezmeld
$MERGEDDosya içeren biridir <<<<<<, >>>>>>, =====(ve belki, ||||||) işaretleri (yani sınırlandırmaktadır çatışmalar). Bu , çakışmaları düzeltmek için manuel olarak düzenlediğiniz dosyadır .
Manuel çakışma düzenleme ve görsel çakışma düzenleme farklı dosyalarda yapılır ve farklı bilgiler sunulur.
Mergetool (varsayalım kullanırken meld), burada görüyoruz dosyalar şunlardır: $LOCAL, $BASE, $REMOTE. $MERGEDDosyayı görmediğinizi unutmayın , ancak bu, melddüzenlemenin sonucunu buraya yazmak için gizli bir parametre olarak iletilir .
Başka bir deyişle, içinde melddosyayı ortada, dosyayı düzenliyorsunuz ve $BASEtüm değişiklikleri soldan veya sağdan manuel olarak seçiyorsunuz . Birleştirme işlemi tarafından dokunulmamış temiz bir dosyadır. Tek aksaklık, kaydettiğinizde, $BASEdosyaya kaydetmezsiniz , ancak dördüncü gizli parametresinde meld, $MERGEDdosyadır (görmediğiniz bile). $BASEDosya yok değil çünkü herhangi bir çatışma veya kısmi başarılı birleştirmeleri ihtiva değil $MERGEDdosya .
Görsel düzenlemede, $BASEdosyayı size sunarken (dosya yerine $MERGED) gittemel olarak birleştirme işlemini gerçekleştirme girişimlerinin tümünü atar (isterseniz bu girişimler $ MERGED dosyasında görünür) ve birleştirmeyi tamamen yapmanızı sağlar sıfırdan .
Sonuç olarak, manuel ve görsel birleştirme çakışmalarında aynı dosyalara bakmıyorsunuz, ancak nihai sonuç aynı dosyaya ( $MERGEDdosyadır) yazılır .
Çatışmaların manuel düzeltme yapılır $MERGEDçünkü git hayır demek var bu yüzden üç dosya (bilgi squashes, size üç dosya sunmak $LOCAL, $BASE, $REMOTEki) $MERGEDdosyası.
Ama görsel araçlar araçlara sahip sana üç dosyaları göstermek için: onlar size göstermek $LOCAL, $BASE, $REMOTEdosyaları. $LOCALVe $REMOTEdosyalarından değişiklikleri seçiyorsunuz ve bunları $BASEdosyaya getiriyorsunuz, dosyayı yeniden birleştirmenin başarısız girişimini tamamen yeniden oluşturuyor ve hatta üzerine yazıyorsunuz $MERGED.
merge.conflictstyleyapılandırma seçeneğidiff3varsayılan olarak ayarlanmışsa otomatik birleştirmede başarısız olan bir dosyadaki çakışan parçaları daha iyi anlarlarmerge.