2011-07-20 14 views
20

Böyle bir ana dalı vardır ..Bir daldan eski bir Git işlemini ters yama kullanmadan kaldırın.

A -- B -- C -- D -- E -- HEAD 

eski biri işlemek ve diğerlerini korumak kaldırmak herhangi bir komut var mı, C taahhüt demek?

nihayet biz C'yi işlemek kaldırmak için bir ters yama kullanmak ve yeni bir ters yama ile taahhüt uygulayabilirsiniz biliyoruz bu

A -- B -- D -- E -- HEAD 

gibi olur, ama ağaç yapısı çok net olmayacak ve hantal görünüyor örneğin,

A -- B -- C -- D -- E -- C(apply reverse patch) -- HEAD 

Herkes bilir?

cevap

28

Etkileşimli yeniden oluşturmayı kullanın. Örneğin, geri 5 kaydedilmesini gitmek:

git rebase -i HEAD~5 

Sonra açılan editörü, kaldırmak istediğiniz tamamlama içeren satırı silin.

+7

Geleneksel uyarı ile bunu başka yere ittiyseniz bunu yapmayın. – manojlds

+5

Alışıldık istisnai bir durumdur, çünkü uzaktan kumandayı kullanan tek kişi sizsiniz. –

+4

Ayrıca tüm diğer devleri haberdar ederseniz ve –

4

Etkileşimli eserler rebase, ama sadece tek bir komut ile bunu yapmak için:

git rebase --onto B C 

Yine "interaktif Rebase" Yanıta yorumlara bakınız. Onlar da burada geçerli.

İlgili konular