Ada 4 file yang terlibat:
$LOCALFile di cabang tempat Anda bergabung; tidak tersentuh oleh proses penggabungan saat ditunjukkan kepada Anda
$REMOTEFile di cabang tempat Anda bergabung; tidak tersentuh oleh proses penggabungan saat ditunjukkan kepada Anda
$BASENenek moyang yang sama dari $ LOCAL dan $ REMOTE, yaitu. titik di mana kedua cabang mulai mengalihkan file yang dianggap; tidak tersentuh oleh proses penggabungan saat ditunjukkan kepada Anda
$MERGEDFile yang sebagian digabungkan, dengan konflik; ini adalah satu-satunya file yang disentuh oleh proses penggabungan dan, sebenarnya, tidak pernah ditampilkan kepada Anda dimeld
The $MERGEDberkas adalah salah satu yang berisi <<<<<<, >>>>>>, =====(dan, mungkin, ||||||) penanda (bahwa konflik membatasi). Ini adalah file yang Anda edit secara manual untuk memperbaiki konflik.
Pengeditan konflik manual dan pengeditan konflik visual dilakukan pada file yang berbeda dan menyajikan informasi yang berbeda.
Bila menggunakan mergetool (menganggap meld), file yang melihat di dalamnya adalah: $LOCAL, $BASE, $REMOTE. Perhatikan bahwa Anda tidak melihat $MERGEDfile, meskipun ini dilewatkan sebagai parameter tersembunyi melduntuk menulis hasil edit di sana.
Dengan kata lain, dalam meld, Anda mengedit file di tengah, $BASEfile, dan Anda memilih semua perubahan dari kiri atau dari kanan secara manual . Ini adalah file bersih, tidak tersentuh oleh proses penggabungan. Satu-satunya kesalahan adalah bahwa, ketika Anda menyimpan, Anda tidak menyimpan ke dalam $BASEfile, tetapi dalam parameter tersembunyi keempat meld, yaitu $MERGEDfile (yang bahkan tidak Anda lihat). The $BASEFile tidak tidak mengandung konflik atau gabungan berhasil parsial karena itu bukan $MERGEDberkas .
Dalam pengeditan visual, saat menyajikan kepada Anda $BASEfile (bukan $MERGEDfile) gitpada dasarnya membuang semua upayanya untuk melakukan penggabungan (upaya-upaya itu terlihat, jika Anda mau, dalam file $ MERGED) dan memungkinkan Anda untuk sepenuhnya melakukan penggabungan. dari awal .
Intinya adalah bahwa dalam konflik penggabungan manual dan visual Anda tidak melihat file yang sama, tetapi hasil akhirnya ditulis dalam file yang sama (yaitu $MERGEDfile).
Koreksi manual dari konflik dilakukan pada $MERGEDkarena git tidak memiliki berarti untuk hadir Anda tiga file, sehingga squashes informasi dari tiga file ( $LOCAL, $BASE, $REMOTE) dalam $MERGEDberkas.
Tapi alat visual memiliki sarana untuk menunjukkan tiga file: mereka menunjukkan $LOCAL, $BASE, $REMOTEfile. Anda memilih perubahan dari $LOCALdan $REMOTEfile dan Anda membawa itu ke dalam $BASEfile, benar-benar membangun kembali dan bahkan menimpa upaya gagal untuk menggabungkan itu adalah $MERGEDfile.
merge.conflictstyleopsi konfigurasi yang diseteldiff3sebagai ganti defaultmerge.