2016-07-19 72 views
5

2 şubem var, master & feature. Master bazen hızlı bir şekilde yaşamak için gereken küçük ince ayarlamalar alır. Bu ince ayarlar bittiğinde, masterfeature'a yeniden yüklenir, böylece özellik güncel tutulur.Hatalı rebase (ler) sonra tanıtılan yinelenen yüklemeleri kaldır

Ana makine üzerinde değiştirilen dosyalar genellikle feature numaralı geliştirme işlemiyle ilişkili değildir, ancak çok sayıda karmaşık 3 yollu birleştirme çakışmasıyla karşılaşıyorum.

feature taahhüt günlüğüne baktıktan sonra, sorunun birkaç kopyasını buldum ve etkileşimli bir rebase ile çözmeye çalışıyorum.

Sorum şu:

yüzden sadece bunu bekliyorum, nasıl tarih çiftleri bırakın ve esasen inşa edebilirsiniz bu soruna için en iyi çözümdür ve eğer? Ayrıca hangi kopyaları düşürürdüm, daha yüksek (daha eski orijinal) veya daha düşük (daha yeni kopyalar).

Özet listeleme git rebase master -i alınan:

pick 0eb277c Commit A 
pick ced2556 Commit B 
pick 640e049 Commit C 
pick b248ff7 Commit D 
pick 9903094 Commit E 
pick ebc279d Commit A 
pick 313385b Commit F 
pick 0d55178 Commit G 
pick c8f09f9 Commit H 
pick e877be3 Commit I 
pick 9859aa0 Commit J 
pick c3c8e0f Commit K 
pick 8abc68c Commit L 
pick 84a5c89 Commit A 
pick 30570e4 Commit B 
pick 937ff2f Commit C 
pick 8e6d911 Commit D 
pick 1dd3a09 Commit E 
pick fe79288 Commit F 
pick 9e790bb Commit G 
pick 0924916 Commit H 
pick 90d59d7 Commit I 
pick ba06c55 Commit J 
pick 7452fad Commit K ** Dupes end here** and features then has 30+ more commits. 
pick d1dca3d Commit M 
pick 6c85f76 Commit N 
pick ad53b78 Commit O 
pick f166471 Commit P 
+1

'git rebase -i HEAD ~ x' yerine' x' yerine istediğiniz sayıyı en çok aşağıdan yukarıya bakmak istediğiniz gibi kullanabilirsiniz; ör. Rebase -i HEAD ~ 3', bu size üç son işi verecektir. Daha sonra hangi korumak istediğinizi ve hangisini silmek istediğinizi seçebilirsiniz. –

+0

0eb277c ve ebc279d Komiteleri her ikisi de A işleci olarak işaretlenir, ancak açıkça onların sha1'i farklıdır, dolayısıyla bunlar farklı öğelerdir. Aslında sha1 listesinde herhangi bir yinelenen taahhüt görmüyorum. – Frodon

+0

Yinelenen kopyayı kastediyorum, taahhüt mesajları aynıdır ve uygulanan kod aynıdır. Ama çoğaltılır ve yeni bir taahhüt olarak kaydedilir. – Kiee

cevap

4

yinelenen Eğer git rebase master -i tarafından oluşturulan listede geçmesi ve basarak ok tuşlarını kullanarak yukarı gezinerek ve listede aşağı çiftleri düşmelidir taahhüt kaldırmak için drop yapmak istediğiniz işlerde d.

(master bir commmit karma veya herhangi bir geçerli yeniden taban noktası ile değiştirilebilir) tüm çiftleri silinir ve bir sen geçmiş bakmak için bekliyoruz nasıl görünüyor listeyi işlemek zorunda sonra

, çıkış esc ve !wq tuşlarına basarak ve tuşlarına basarak yeniden düzenleme ekranı girin.

Yeniden taban, devam edecek ve pick üzerinde yapılan işlemlerin listesini yeniden temel noktanıza uygulayacaktır.