Git'te bunu yapabilirim:
1. Yeni özellik üzerinde çalışmaya başlayın: $ git co -b newfeature-123 # (bir yerel özellik geliştirme dalı) birkaç işlem yap (M, N, O) usta A --- B --- C \ yeni özellik-123 M --- N --- O 2. Akış yukarı master'dan yeni değişiklikler çekin: $ git pull (master ff-commits ile güncellendi) master A - B - C - D - E - F \ yeni özellik-123 M --- N --- O 3. Yeni özelliğim için master'ı geri kazan en son yukarı akış değişikliklerine karşı geliştirilebilir: (yeni özellik-123'ten) $ git rebase master master A - B - C - D - E - F \ yeni özellik-123 M --- N --- O
Mercurial'da aynı şeyi nasıl yapacağımı bilmek istiyorum ve web'i bir cevap için ovuşturdum, ancak bulabildiğim en iyi şey: git rebase - bunu yapabilir
Bu bağlantı 2 örnek sağlar:
1. Bunu itiraf edeceğim: (örnekteki revizyonları kendi örneğimdekilerle değiştirerek)
hg up -CF hg şube - yeni özellik-123 hg nakli -a -b newfeature-123
çok kötü değil, ancak ön-öncesi MNO'nun ardında birleştirilmemiş bir kafa olarak kalması ve güncellenen ana hattı dallayan onları temsil eden 3 yeni komisyon M ', N', O 'yaratması dışında.
Temelde sorun bu ile sonuçlanmasıdır:
master A - B - C - D - E - F \ \ newfeature-123 \ M '- N' - O ' \ yeni özellik-123 M --- N --- O
bu iyi değil, çünkü bırakılması gereken yerel, istenmeyen taahhütlerin ardında kalıyor.
- Aynı bağlantıdaki diğer seçenek
hg qimport -r M: O hg qpop -a hg yukarı F hg şube newfeature-123 hg qpush -a hg qdel -r qbase: qtip
ve bu istenen grafikle sonuçlanır:
master A - B - C - D - E - F \ yeni özellik-123 M --- N --- O
ama bu komutlar (hepsi 6!)
$ git rebase master
Bunun Hg'deki tek eşdeğer olup olmadığını veya Git gibi basit başka bir yol olup olmadığını bilmek istiyorum.
git reflog
çöp toplanana kadar tamamen gitmezler. Reflog'u kullanmak zorunda kalmamak için onları adlandırılmış bir dalda tutmak istiyorsanız, yeniden bastırmadangit branch feature-123_original
önce yapın.