2009-11-20 7 views

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

+0

Teşekkürler! Harika çalışıyor. – prismofeverything

+6

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. –

2

Genellikle, I will:

  1. Ben değişikliği kaldırmak istediğiniz şubesine bu ters yamayı uygulayın git diff (örn git diff HEAD^ HEAD)
  2. kullanarak bir ters yama dosyası oluşturun dan.
  3. Kontrol dışarı başvurmaya
  4. 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