SORU
27 Mayıs 2009, ÇARŞAMBA


'onlarınki kabul' veya 'benimkini kabul' tüm dosya üzerinde gıt kullanarak basit bir araç

Birleştirme görsel bir araç istemiyorum, ve ben de vı çakışan dosya var ve el ile KAFA (benim) ve ithal değişikliği (onların) arasında seçim yapmak istemiyorum. Çoğu zaman da yapılan bütün değişiklikleri ya da benim her şeyi istiyor. Genellikle bu benim değişim upsteam yaptı ve geri çekme yoluyla bana geliyor, ama biraz çeşitli yerlerde değiştirilebilir olmasıdır.

Çatışma işaretleri kurtulmak ve bir şekilde benim seçimim dayalı seçim olacak bir komut satırı aracı var mı? Ya ben hangi gıt komutları kendimi her bir diğer adı.

# accept mine
alias am="some_sequence;of;commands"
alias at="some_other_sequence;of;commands"

Bunu yaparken oldukça can sıkıcı bir durum. 'Benim' denedim: . kabul etmek için

randy@sabotage ~/linus $ git merge test-branch
Auto-merging Makefile
CONFLICT (content): Merge conflict in Makefile
Automatic merge failed; fix conflicts and then commit the result.

randy@sabotage ~/linus $ git checkout Makefile 
error: path 'Makefile' is unmerged

andy@sabotage ~/linus $ git reset --hard HEAD Makefile 
fatal: Cannot do hard reset with paths.

Nasıl bu değişim işaretleri kurtulmak gerekiyor?

Yapabileceğim:

git reset HEAD Makefile; rm Makefile; git checkout Makefile

Ama bu daha iyi bir yolu olmalı yuvarlak, görünüyor. Ve bu noktada, eğer gıt hatta bu ille de bile çalıştığını sanmıyorum bu yüzden oldu birleştirme düşünüyorsa emin değilim.

Diğer taraftan gidersek, 'onların' eşit bir şekilde dağınık.kabul yapıyor Tek yolu bunu şekil:

git show test-branch:Makefile > Makefile; git add Makefile;

Çatışmalar bu da bana mesaj kaydetme bir haberci verir: Makefile iki kez.

Birisi basit bir şekilde yukarıdaki iki eylemler yapmak için nasıl işaret edebilir misiniz? Teşekkürler

CEVAP
27 Mayıs 2009, ÇARŞAMBA


Çözüm çok basit. git checkout <filename> dosyasını kontrol etmek için çalışırdizinve birleştirme başarısız. bu nedenle.

Yapman gereken şey (yani bir çıkışcommit):

Ödeme için kendi sürümübirini kullanabilirsiniz:

git checkout HEAD -- <filename>

git checkout --ours -- <filename>

git show :2:<filename> > <filename> # (stage 2 is ours)

Ödeme için başka bir versiyonubirini kullanabilirsiniz:

git checkout test-branch -- <filename>

git checkout --theirs -- <filename>

git show :3:<filename> > <filename> # (stage 3 is theirs)

Ayrıca 'add' çözümlendi olarak işaretle: . çalıştırmanız gerekir

git add <filename>

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Andytokkallos

    Andytokkallo

    27 Kasım 2007
  • BDGcustoms

    BDGcustoms

    24 NİSAN 2011
  • Bucky Roberts

    Bucky Robert

    9 HAZİRAN 2011