SORU
16 Ocak 2009, Cuma


Nasıl git-merge ile seçici dosyaları birleştirme musunuz?

Paralel -- ama şu anda deneysel iki gelişme dalları olan yeni bir proje üzerinde gıt kullanıyorum:

  • master: genel olarak eminim ki mevcut kod temeli artı birkaç mod alma
  • exp1: deneysel şube #1
  • exp2: deneysel şube #2

exp1 exp2 iki farklı mimari yaklaşımlar temsil eder. Daha fazla alana kadar birlikte bir (ya) işe hangi bilmenin bir yolu var. Bir dalda ilerleme yapıyorum ben bazen diğer şube yararlı olacağını düzenler ve bunları birleştirmek istiyorum.

Her şeyi geride bırakarak iken başka bir gelişme daldan seçmeli dosyaları birleştirmek için en iyi yolu nedir?

Düşündüm yaklaşımlar:

  1. Dalları arasında ortak yapmak istemiyorum bu düzenlemeler, çok sayıda git merge --no-commit manuel unstaging izledi.

  2. Ortak manuel kopyalama temp dizini git checkout ardından çalışma ağaca diğer şube ve daha sonra elle kopyalama için temp dizini taşımak için içine dosyaları.

  3. Yukarıda bir varyasyon. Şimdilik exp dalları terk ve deneyler için iki ek yerel depoları kullanın. Bu dosyaları el ile kopyalama işlemi çok daha kolaylaştırıyor.

Bu yaklaşımlar üç sıkıcı gibi görünüyor ve hata eğilimli. Daha iyi bir yaklaşım var; bir şey git-merge daha seçici olacağını filtre yolu bir parametre benzer umuyorum.

CEVAP
31 AĞUSTOS 2009, PAZARTESİ


Siz tarafından yukarıda belirtildiği gibi aynı sorun vardı. Ama cevabı açıklayan this daha net buldum.

Özet:

  • Ödeme birleştirmek istiyorsun . yolları şube

    $ git checkout source_branch -- <paths>...

  • Eğer bir değişiklik seçici birleştirme, reset kullanın ve eklemek gerekirse,

    $ git reset <paths>...< / ^ br . $ git add -p <paths>...

  • Sonunda işlemek

    $ git commit -m "'Merge' these changes"

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • glowpinkstah

    glowpinkstah

    16 Mayıs 2006
  • kimberly p

    kimberly p

    23 Ocak 2010
  • Major FX

    Major FX

    6 HAZİRAN 2012