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.