Ada 4 file yang terlibat:
$LOCAL
File di cabang tempat Anda bergabung; tidak tersentuh oleh proses penggabungan saat ditunjukkan kepada Anda
$REMOTE
File di cabang tempat Anda bergabung; tidak tersentuh oleh proses penggabungan saat ditunjukkan kepada Anda
$BASE
Nenek 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
$MERGED
File yang sebagian digabungkan, dengan konflik; ini adalah satu-satunya file yang disentuh oleh proses penggabungan dan, sebenarnya, tidak pernah ditampilkan kepada Anda dimeld
The $MERGED
berkas 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 $MERGED
file, meskipun ini dilewatkan sebagai parameter tersembunyi meld
untuk menulis hasil edit di sana.
Dengan kata lain, dalam meld
, Anda mengedit file di tengah, $BASE
file, 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 $BASE
file, tetapi dalam parameter tersembunyi keempat meld
, yaitu $MERGED
file (yang bahkan tidak Anda lihat). The $BASE
File tidak tidak mengandung konflik atau gabungan berhasil parsial karena itu bukan $MERGED
berkas .
Dalam pengeditan visual, saat menyajikan kepada Anda $BASE
file (bukan $MERGED
file) git
pada 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 $MERGED
file).
Koreksi manual dari konflik dilakukan pada $MERGED
karena git
tidak memiliki berarti untuk hadir Anda tiga file, sehingga squashes informasi dari tiga file ( $LOCAL
, $BASE
, $REMOTE
) dalam $MERGED
berkas.
Tapi alat visual memiliki sarana untuk menunjukkan tiga file: mereka menunjukkan $LOCAL
, $BASE
, $REMOTE
file. Anda memilih perubahan dari $LOCAL
dan $REMOTE
file dan Anda membawa itu ke dalam $BASE
file, benar-benar membangun kembali dan bahkan menimpa upaya gagal untuk menggabungkan itu adalah $MERGED
file.
merge.conflictstyle
opsi konfigurasi yang diseteldiff3
sebagai ganti defaultmerge
.