2010-01-08 12 views
11

"Cannot rewrite branch(es) with a dirty working directory".git hata

Ben Git için yeni "kirli bir çalışma dizininin ile şube (ler) ini yeniden Can not".

Bu hata ne anlama geliyor? Ne yapmalıyım/yapabilirim?

+0

bu benim ilk git repo ve ben ... ait olmayan bir şeyi işlediği düzeltmek zorunda kaldı. – jldupont

+0

Aynı sorunu yaşıyorum ve git deneyimliyim. Eğer filtre-şube --subdirectory-filtre somedir - yapmam gerekiyorsa - all 'tüm repo'm işlenerek bitiyor ama eğer gidip gideyim - filtre - branch --tree - filter' rm somefile '- Yukarıda belirtilen hata ile ilk şubeyi işledikten sonra tüm çıkar. Neden 'filter-branch'' --subdirectory-filter' durumunu kaydetmez ancak '-tree-filter' dizini değiştirirse durur? –

cevap

19

Kirli bir çalışma dizini, dalınızda yapılan değişiklikler yapılmadığı anlamına gelir. Onları yapabilir ya da saklayabilirsin. Sadece saklamak kullanmak için:

git stash 

Ve değişiklikleri getirmek için kullanabilir geri

git stash apply 
+0

yardımcı oldu ... teşekkürler! 'Filtre branch' çalıştırırken iç dizinleri yenilemez budala anlamına öncesinde 1.7.7.1 için Git bir hata var: aslında kirli bir çalışma dizini olmayabilir – jldupont

+3

Not. Bu nedenle, bu iki komutu yine de çalıştırmayı deneyin. Herkes, dizin yenilemeyi zorlama konusunda daha az harikulade bir yol bilmediği sürece. (Bu soru hakkında daha fazla tartışma (http://stackoverflow.com/questions/6463963/git-filter-branch-says-working-tree-is-dirty-when-it-is-not).) –

+2

Yukarıdaki bağlantıya eklenen bir yorumdan: 'git update-index -q --ignore-submodules --refresh' dizini güncellemelidir! –