SORU
14 Aralık 2008, Pazar


Farklı gıt birleştirme stratejileri kullanırsınız?

Adam gıt-birleştirme sayfasında kullanabilirsiniz birleştirme stratejileri vardır.

  • gidermek- Bu sadece iki kafa (mevcut şube ve bulduğun başka bir şube yani) 3-yollu birleştirme algoritması kullanarak çözebilirsiniz. Dikkatle-çapraz criss birleştirme belirsizlikleri tespit etmek için çalışır ve genellikle güvenli ve hızlı olarak kabul edilir.

  • özyinelemeli- Bu sadece iki kafa 3-yollu birleştirme algoritması kullanarak çözebilirsiniz. Ne zaman orada birden fazla ortak ataları için kullanılabilecek 3-yollu birleştirme, oluşturduğu bir birleştirilmiş ağacın ortak ataları ve kullanan olarak başvuru ağaç için 3-yollu birleştirme. Bu daha az yanlış birleştirir neden olmadan birleştirme çatışmalar neticesinde testleri tamamlar Linux 2.6 alınan birleştirme çekirdek gerçek gelişim tarihi üzerinde yapılan tarafından bildirilmiştir. Ayrıca bu birleştirir ve yeniden adlandırır karıştığı tespit işleyebilir. Bu varsayılan veya bir kolu çekerek birleştirirken strateji birleştirme.

  • ahtapot- Bu iki kafa daha giderir, ama karmaşık manuel çözünürlük ihtiyacı olan birleştirme yapmayı reddediyor. Öncelikle birlikte konu şube başkanları donatılacak için kullanılacak içindir. Bu varsayılan ya da birden fazla Şubesi çekerek birleştirirken strateji birleştirme.

  • bizimki- Bu kafaları herhangi bir sayı giderir, ama sonuç her zaman mevcut Şube Başkanı Birleştir. Yan dal eski gelişme tarihine kadar yerini kullanılmak üzere tasarlanmıştır.

  • ağacı- Bu değiştirilmiş özyinelemeli bir stratejidir. B Eğer ağaçları ve B, birleşen bir alt karşılık, B önce Bir ağaç yapısı, aynı düzeyde ağaçlar okumak yerine uygun olarak ayarlanır. Bu ayar ayrıca ortak ata ağaç için yapılır.

Ne zaman bir şey varsayılan daha farklı belirtmek gerekir mi? Senaryolar her biri için en iyisi nedir?

CEVAP
14 Aralık 2008, Pazar


Gidermek aşina değilim, ama diğerlerini kullandım:

Özyinelemeli

Özyinelemeli olmayan ileri birleştirmesi için varsayılan değer budur. Bir aşinayız.

Ahtapot

Birleştirilmiş edilmesi gereken birkaç ağaç vardı ne zaman ahtapot kullandım. Bağımsız projelere sahip olduğu büyük projelerde bunu görüyorsun ve her şey hazır, tek bir kafa halinde bir araya gelmek.

Ahtapot bir şube birden fazla tura temiz bir şekilde yapabildiği sürece taahhüt birleştirir.

Örnek için, bir ana ve ara onları a, b ve c) birleştirmek için üç şube daha sonra olan bir proje olduğunu varsayalım.

Özyinelemeli samimi bir dizi bu (ilk birleştirme unutmayın zorlamadım olarak hızlı ileri, bir özyineleme) gibi görünecektir:

alt text

Ancak, tek bir ahtapot bu gibi görünecektir birleştirme:

commit ae632e99ba0ccd0e9e06d09e8647659220d043b9
Merge: f51262e... c9ce629... aa0f25d...

alt text

Bizimki

Bizimki == başka bir kafa çekmek istiyorum, ama tüm değişiklikleri atmak kafa tanıttı.

Bu şubenin etkileri olmadan bir şube geçmişini tutar.

(Okuma: hatta bu dalların arasındaki değişiklikleri hiç bakmadan. Şubeleri birleştirilir ve hiçbir şey dosyaları için yapılır. Eğer diğer şube birleştirmek istiyorsanız ve her zaman sorunu var "dosya sürümü veya sürüm" git merge -X ours kullanabilirsiniz)

Ağacı

Ağacı mevcut projenin bir alt dizini olarak başka bir projede birleştirmek istediğinizde kullanışlıdır. Bir kütüphane varsa, yararlı bir submodule olarak dahil etmek istemiyorum.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Amena

    Amena

    15 Kasım 2006
  • campos9896

    campos9896

    24 Mart 2012
  • EvilControllers

    EvilControll

    20 Ocak 2008