2013-04-17 19 views
22

Önceki bir taahhüt tarafından ortaya konan etkiyi araştırmak için, bunu çalışma kopyasıma tersine uygulamak ve kodla uğraşmak istiyorum.Ters Çalışma belgesine bir başvuru yapın

Yama oluşturup uygulamakla ilgili bir iş akışıyla uğraştım, ancak bunun daha kolay yapılabileceğini merak ediyorum. Bunları beri git revert veya git rebase -i bakarak değilim

git checkout -b "tmp-fiddle" 
git diff -R -p d9fd2bb^ d9fd2bb > patch_to_examine.patch 
# Manually edit the patch a little 
git apply patch_to_examine.patch 

Not yeni işlemek veya Geçmişi değiştirmek getirecek ya: Ben sadece olması d9fd2bb tanıtılan değişikliklerin istiyorum benim şimdiki çalışma kopyasına un-uyguladı.

+0

El ile yaptığınız düzenleme nedir? –

+0

Temiz uygulanmayan yama oldu; Beyaz boşluk hakkında uyarı gönderme. – berkes

cevap

35

git revert -n nasıl?

-n 
--no-commit 

Genellikle komut otomatik olarak kaydedilmesini döndürüldü edildiği belirten günlük iletilerini işlemek bazı kaydedilmesini oluşturur. Bu bayrak, adlandırılmış taahhütleri çalışma ağacınıza ve dizine döndürmek için gerekli değişiklikleri uygular, ancak taahhütleri gerçekleştirmez. Ayrıca, bu seçenek kullanıldığında, dizinin HEAD taahhüdü ile eşleşmesi gerekmez. Geri alma, dizininizin başlangıç ​​durumuna göre yapılır.

Bu, bir satırda dizininize birden fazla işlemin etkisini geri döndürürken kullanışlıdır.

+1

Ne yazık ki, bu, yalnızca çalışma kopyanızın, taahhütten etkilenen dosyalarda herhangi bir değişiklik yapmadığı sürece çalışır (diğer dosyalarda değişiklikler olabilir). Sanırım, bu durumda 'git stash; git revert -n ; git stash pop 've çakışmaları (varsa) çözün. – arekolek