2013-01-24 18 views
18

master diyelim Bir özelliği devre dışı bırakılmış. Bu özellik üzerinde şube feature üzerinde çalışıyorum, bu nedenle bu özelliği etkinleştiren özel bir işlem var $ var. Şimdi feature'da yaptığım değişiklikleri master içine birleştirmek istiyorum, ancak etkinleştirme işlemini sürdürmek istiyorum.Git: "Üstte" bir işlem gerçekleştirme

new feature: A--B--C--D--$ 

Bunu nasıl yapmayı gitmek: Yani Yani ben özelliğin üstünde taahhüt $ hareket ettirerek, bunu yapmak istiyorum diyelim

main: A--B--X--Y 
feature: A--B--$--C--D 

gibi?

cevap

20

git rebase -i B ve sonra editörünüzde görünen listenin sonuna $ öğesini taşıyın. Açılan dosyadaki ilk satır olarak başlayacaktır. Ayrıca bu satırı tamamen silebilirsiniz, ki bu da şubenizin geçmişini bırakacak.

+0

Harika teşekkürler! Artık rebase kullanmalıyım diye çok açık, bazı sebeplerden önce onu daha önce vişne ile çözmeye çalıştım. –

+0

@AdrianPanasiuk, kiraz alımını da kullanabilirsiniz, ama muhtemelen çok daha fazla çaba gerektirecektir. –

5

feature numaralı sözleşmeyi aynı siparişte tutmak istiyorsanız, yeni bir şube oluşturup aşağıdakileri gerçekleştirmelisiniz. listede

git checkout master 
git rebase feature <or the other branch name> 

dibine $ taahhüt Aksi sadece feature

git rebase -i <sha for commit B> 

taşı üzerinde bunu Söz bana belli değildi ama hiç $ istemiyorsa, git rebase -i'dan sonra onu silmek yerine yeni bir dalda bunu yapmak isteyip istemediğinizi unutmayın. Tarihi değiştirirken. Bu, feature dalının, geçmişin yeniden yazılması kötü olduğu için uzaktan kumandaya itilmemiş olduğunu varsayar.

İlgili konular