2011-08-12 22 views
6

'dan sonra saklanmaya devam et Son zamanlarda, git filter-branch --subdirectory-filter deep/in/my/project kullanarak depolarımı (bigproj'da bulunan) ayırdım. Sonra .git dizinini deep/in/my/project'a taşıdım. Ben (git stash drop sonra) bu hatayı olsun ben bu zulası bırakamazsınızGit filtre-dalı --subdirectory-filter

[email protected]{0}: filter-branch: rewrite 

:

refs/[email protected]{0}: not a valid stashed state 
Şimdi

, zulası üst zula şey gibi garip bir durumda demektir

Şimdi, @ {1} saklanma sırasını bilmeme rağmen, hala bigproj hiyerarşisindeki dosyalar için farklar içerir. Stash verilerini yeniden yazmak mümkün mü, sadece deep/in/my/project hiyerarşisine ait dosyalar içeriyor mu?

cevap

0

.git dizini taşımadan önce drop ve pop yapmak zorunda olduğunuzu tahmin ediyorum. Hareket ettikten sonra her zaman yeniden saklayabilirsiniz.

+0

Hayır, işe yaramıyor. '.git' dirsini taşımadan önce' git stash drop' ı denediğimde bile aynı hatayı alıyorum. Yeniden stash ile ne demek istiyorsun? –

+1

Hmm, görünüşe göre 'stash' bir sebepten dolayı filtre-şube işleminden sağ çıkmıyor. Muhtemelen filtrelenmemiş halinize geri dönmek zorunda kalacaksınız ve sadece bu değişiklikleri yerine getirmelisiniz, daha sonra süzgeç bir kez daha tekrar tekrar başlatılmaması için filtreyi bir 'git reset HEAD ~ 1 'yaptıktan sonra. –

3

git filter-branch'u kullandıktan sonra aynı sorunu yaşadım. Aşağıdaki komut saklamayı tamamen eritir ve bu nedenle git filter-branch tarafından oluşturulan girdileri de siler. Uyarı! tüm bu saklı değişikliklerin bu komutu çağırdıktan sonra kurtarmak imkansız olabileceğinden, komut çağırmadan önce tüm diğer saklı durumları uyguladığınızdan emin olun.

git stash clear 
+0

Ama bütün saklamayı öldürmek istemiyorum, onu tutmak istiyorum, sadece repoda olmayan parçalar olmadan. –