2012-12-20 17 views
9

Git-svn kullanıyorum ve git svn rebase çalıştırmaya çalışıyorum.Git hata ayıklama nasıl hata ayıklama: "Hiçbir şey yok sakladığınızda" "aşağıdaki dosyaların yerel olarak yapılan değişiklikler, ödeme ile üzerine yazılır"?

hata alıyorum:

Your local changes to the following files would be overwritten by checkout: 
<filename> 
Please, commit your changes or stash them before you can switch branches. 

Daha önce var git update-index --assume-unchanged <filename> çalıştırın ve dosyada değişiklikler, ancak şimdi bunun kurtulmak için git update-index --no-assume-unchanged <filename> tükendi.

git status hiçbir değişikliği bildirmez ve git stash saklamak için bir şey olmadığını belirtir.

ben dosya .gitignore veya

.git/info/exclude Nasıl bu sorun daha da debug olmadığını kontrol ettikten?

cevap

10

Ben

(Windows Powershell ile Veya git ls-files -v | where { $_ -match "^[^H]"})

git ls-files -v | grep "^[^H]" 

çalıştırarak bu öğrendim Ben skip-worktree bit kümesi sahip olduğu ortaya çıkar, bu yüzden

git update-index --no-skip-worktree <filename> 

çalıştırmak için gerekli

Yazma git help ls-files, çıkışın ne anlama geldiğini açıkladı.

12

Bu problemi yaşıyordum ve Tim'in cevabı, çözümü bulmama yardımcı oldu. Geçmişte

Ben kaçmış:

git update-index --assume-unchanged index.php 

Sorun

yerel geçiş çalışırken uzaktan, ben üzerine yazma uyarısı başlamıştı başka şubeye değişikliklerin bir demet yaptıktan sonra. Süzme çalışma değildi.

git stash save --keep-index 
No local changes to save 

Bundan sonra
git update-index --no-assume-unchanged index.php 
git add index.php 
git commit 

Çözüm

.

git checkout other-branch 

Başarı!

+0

Yayınız için teşekkürler. Benim durumumda benzer bir şey oldu, ben dosyayı değiştirdim oldu, sonra git hata güncelleme yaptım --assume-değişti. Çözümünüzü, - varsayımsız, değişmez, daha sonra - daha sonra - değişmeyecek şekilde değiştirerek takip etmeliydim. Bundan sonra sadece –

+0

düğmesine basın "git commit" işlevini kullanırsanız, index.php'deki tüm yerel değişiklikler uzaktan gider ve projeyi çekecek herkes değişikliklerinizi alır, değil mi? git bu hata durumunda 2 yol önermektedir: taahhüt veya stok. Yani, git update-index --no-assume-unchanged' sonrası git stash' kullanmayı tercih ediyorum. –