2012-02-03 14 views
6

Bir dosyayı önceki bir işleme geri döndürmeye çalışırken sorun yaşıyorum. Tek bir dosyayı geri almak için git checkout kullanabileceğimi biliyorum ama sorun şu an bu dosyada değişiklik yapmak istiyorum. Bir önceki işlem ile mevcut HEAD arasında tek bir dosya için "birleştirme" yapmak nasıl? git reset sha-of-my-commit path/to/my/file'u kullanmayı denedim, ancak çalışma dizinimde en son sürümü tutarken, bir sonraki sürümü her iki dosyayı nasıl birleştireceğinden emin olmadan hazırlama alanına koyar.Geçerli değişiklikleri üzerine yazmadan bir önceki sürüme dosya nasıl geri alınır?

Şimdilik ne yaptım sadece git diff ..sha-of-my-commit path/to/my/file ve sadece eksik satırları kopyalayıp yapıştırıyordu ama bunun doğru bir yolu olmalı?

cevap

4

varsayarsak değişiklikleri (taahhüt değil) iş ağacında anlamına: bazı değişiklikler işlenen olsaydı

git stash 
git checkout previous-commit path/to/file 
git stash pop 

, o zaman hala biraz daha çalışma ile, bunu yapabilir. Tarihinizin şu şekilde göründüğünü varsayalım: A versiyonunu istediğiniz yerde, ayrıca B'den itibaren de değiştirebilirsiniz. Sonra bunu: Bir mergey operasyon beri herhangi zula uygulaması, birleştirme çatışmalarda neden olabileceğini

git stash 
git checkout B path/to/file 
git stash 
git checkout A path/to/file 
git stash pop 
git stash pop 

Not; Tabii ki ilerlemeden önce bunları çözmelisin!

+0

Teşekkürler! Tamam 'git stash' hakkında unuttum – javiervd

İlgili konular