2012-12-20 8 views
6
göstermiyor

Olası Çoğalt:
Git - how to force merge conflict and manual merge on selected file- çatışmaları

Biz iki kol arasında bir birleştirme yapmaya çalışıyoruz: kararlı kodlar ve yeni özellikler .

Birleştirme işlevi bizim için çalışmıyor: bazen çakışma gösterir, ancak çoğu zaman herhangi bir çakışmadan bahsetmeden dosyaların üzerine yazılır, büyük olasılıkla doğru sürüm olduğunu düşündüğü ile.

Tüm bu çakışan satırları bize gösterecek şekilde, bu üzerine yazma işlemini engellemek mümkün mü? Ne kadar kapsamlı olduğuna dair bir fikir elde etmek için git diff'yi denedik ama birkaç bin satır var, çünkü kararlı şubemizde oldukça kapsamlı hata ayıklama yaptık ... Bu yüzden, eğer mümkünse, birleştirme işlevini gerçekten çalıştırmamız gerekiyordu. .

Biraz dağınık bir durumdayız, tüm yardımları büyük takdir edecektir.

cevap

2

Sorununuzu nasıl yeniden üreteceğimi bilmediğimden, bazı tahminler yapmam gerekiyor.

Tecrübemde, birleştirme yapmadan önce git birleştirme işlemini çevreleyen karışıklık genellikle git pull --rebase yapılarak azaltılabilir. Bu, uzaktaki en son değişiklikleri çeker ve değişikliklerinizi üst üste getirir. Ancak, değişikliklerinizi daha önceki bir taahhütte birleştirmeyi düşünüyorsanız bunu yapmayın. Her durumda, pull'u yapmadan önce en son taahhüt kimliğini not edin, böylece bir sorun olursa ona geri dönebilirsiniz.

Şimdi birleştirme işlemine gelince, birleştirmenin işlenmesini önlemek için git merge --no-ff --no-commit kullanmayı deneyebilirsiniz. Bunun size görmek istediğiniz tam bir çakışma raporunu verip vermeyeceğini bilmiyorum, ancak birleştirme sonucunu (bir simülasyon modu gibi) incelemenize izin veriyor. Sonucu beğenmezseniz, birleştirme işlemini git reset --hard kullanarak geri alabilirsiniz.

git merge --no-commit --no-ff your-branch 

Bu hızlı ileri ana işlemek veya birleştirme oluşturmak olmaz, ancak sadece çalışma dizininde birleştirilmiş dosyaları koyacağız: Ne yapabilirsiniz

1

, birleştirme olarak çalıştırılır. Değişiklikleri inceleyebilirsiniz. Memnun olduktan sonra bir git commit yapabilir ya da git reset --hard

+0

'dan dönebilirsiniz. Teşekkürler ShadyKiller, ve ap. Çözümleriniz için. Bize nasıl çözüleceğine dair bir ipucu veriyorlar, ama yine de bu birleştirme yöntemini kullanırken, kodun bir kısmı, değişikliklerin ortaya çıkması olmadan basitçe göz ardı ediliyor. Neden olduğunu anlamaya çalışıyoruz. Daha da ileri gidebilirsek, geri göndereceğiz. Tekrar teşekkürler. –

+0

merhaba @EricHiland da aynı sorunla karşı karşıyayız. Bu konuda herhangi bir güncelleme var mı? –