Git birleştirme çakışmasında oluşturulan BACKUP, BASE, LOCAL ve REMOTE dosyaları nelerdir?


122

LOCAL ve REMOTE dosyalarının adından da anlaşılacağı gibi olduğunu varsayıyorum, ancak BASE ve BACKUP ne için?

Yanıtlar:


166

Git, birleştirdiğiniz iki dalın ortak atasını ("birleştirme tabanı" olarak da bilinir) bularak üç yönlü birleştirme gerçekleştirir. Bir git mergetoolçatışmada çalıştırdığınızda, bu dosyaları tipik bir 3 yollu birleştirme aracına beslenmeye uygun olarak üretir. Böylece:

  • foo.LOCAL: çatışmanın "bizim" tarafı - yani, HEADbirleştirmenin sonuçlarını içerecek olan şubeniz ( )
  • foo.REMOTE: çatışmanın "onların" tarafı - birleştiğiniz dal HEAD
  • foo.BASE: ortak ata. üç yönlü bir birleştirme aracını beslemek için kullanışlıdır
  • foo.BACKUP: Birleştirme aracını çalıştırmadan önce dosyanın içeriği, eğer dosya sisteminde tutulacaktır mergetool.keepBackup = true.

9
Hayır LOCAL, içindeki sürümdür HEAD. BACKUPsiz çağrılmadan önce diskte bulunan sürümdü mergetool. Muhtemelen diff3 çakışma işaretlerini içerir ve çağırmadan önce düzenlemiş olabilirsiniz mergetool.
Edward Thomson


Üç yollu birleştirme de dahil olmak üzere birleştirme durumlarını açıklayan güzel bir makale: git-scm.com/book/en/v2/…
qatz

16
YEREL / UZAKTAN sözcükleri bir şekilde yanıltıcıdır, "değişikliklerim" / "uzaktan değişiklikler" anlamına geldiklerini düşünmeme neden olur, ancak aslında genellikle "ana ile birleştirme" bağlamında, YEREL, diğerinin modifikasyonu olan hedef daldır ve UZAKTAN benim değişikliklerim olan kaynak dalıdır. :)
TingQian LI

8
Onlar ... Yeniden ödeme mi yapıyorsunuz? Çünkü bir rebase'de taraflar tersine döndü.
Edward Thomson
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.