Her biri farklı bir özellik için iki daldan müteşekkirim, sonra da ikisini birleştiren bir sentez dalına sahibim. Sentez dalına bir şey yaptım, fakat şimdi görüyorum ki bu değişikliği, özellikle bu özellikteki dallardan birine uygulayacağım. Bunu yapmak için bir yol var mı/başka bir yere manevra git ile gitmek?Git'de, bir şubeden bir taahhüt nasıl kaldırılır ve farklı bir şubeye uygularım?
21
A
cevap
27
Kiraz seçimini, hedef dalına taahhüt eder ve kaynak dalını sıfırlar. Varsayarsak, yapmanız, son source
şubesinden target
taahhüt taşımak istiyorum:
git checkout target
git cherry-pick source
git checkout source
git reset --hard source^
son değildi işlersen, son komutun yerine git rebase -i
yararlanabilir ve belirli seçim yapmak zorunda olacak ismini taahhüt cherry-pick
. Böyle bir şey yaptığınızda
2
Genellikle, I will:
- Ben değişikliği kaldırmak istediğiniz şubesine bu ters yamayı uygulayın git diff (örn
git diff HEAD^ HEAD
) - kullanarak bir ters yama dosyası oluşturun dan.
- Kontrol dışarı başvurmaya
- Kullanım
git cherry-pick
üzerinde değişiklik istiyorlar DO şube uygulanabilir taahhüt
ben daha kolay bir yolu olduğuna inanıyoruz, ama kullandığım (ve unutmayın) beri bu tercih fark/cherry-pick komutları daha iyi
+3
Adımlar 1 + 2 == git revert – Dustin
Teşekkürler! Harika çalışıyor. – prismofeverything
Sıfırlamanın/yeniden oluşturmanın her ikisi de ** tarihinin yeniden yazılmasını ** unutmayın, böylece geçmiş yayınlanmışsa kullanılmamalıdır, bunun yerine git-revert'i kullanmanız gerekir. –