Bir birleştirme çakışmasıyla karşılaştım. Birleştirmeyi nasıl iptal edebilirim?
Ben git pull
kullandım ve birleştirme çakışması yaşadım:
unmerged: _widget.html.erb
You are in the middle of a conflicted merge.
Dosyanın diğer sürümünün iyi ve benimkinin kötü olduğunu biliyorum, bu yüzden tüm değişikliklerimi terk etmeliyim. Bunu nasıl yapabilirim?
2374
3
Çekme işleminiz başarısız olduğu için
HEAD
(HEAD^
değil) dalınızdaki son "geçerli" işlemdir:İstediğiniz diğer parça ise onların değişikliklerinin sizin değişikliklerinizi geçersiz kılmasına izin vermektir.
Git'in eski sürümleri "theirs" birleştirme stratejisini kullanmanıza izin veriyordu:
Ancak bu, Junio Hamano'nun bu mesajında (Git bakımcısı) açıklandığı gibi, o zamandan beri kaldırılmıştır. Bağlantıda]1 belirtildiği gibi, bunun yerine şunu yapmalısınız:
Sanırım ihtiyacınız olan "git reset".
Dikkat edin,
git revert
, örneğinsvn revert
ten çok farklı bir anlama gelir - Subversion'da revert (commit edilmemiş) değişikliklerinizi atarak dosyayı depodaki geçerli sürüme döndürür, oysagit revert
"undoes" bir commit" eder.git reset
,
svn revert` ile eşdeğer bir işlem yapmalı, yani istenmeyen değişikliklerinizi atmalıdır.Bu özel kullanım durumunda, birleştirmeyi gerçekten iptal etmek istemezsiniz, sadece çakışmayı belirli bir şekilde çözmek istersiniz.
Sıfırlamaya ve farklı bir strateji ile birleştirme yapmaya da özellikle gerek yoktur. Çakışmalar git tarafından doğru bir şekilde vurgulanmıştır ve diğer tarafın değişikliklerini kabul etme gerekliliği sadece bu dosya içindir.
Bir çakışmadaki birleştirilmemiş bir dosya için git, dosyanın ortak temel, yerel ve uzak sürümlerini dizinde kullanılabilir hale getirir. (Bu sürümler
git mergetool
tarafından 3 yönlü bir fark aracında kullanılmak üzere buradan okunur). Bunları görüntülemek içingit show
kullanabilirsiniz.Uzak sürümü harfi harfine kullanmak için çakışmayı çözmenin en basit yolu şudur:
Ya da git >= 1.6.1 ile: