2013-01-29 16 views
18

'da Git bash yoluyla Klasörün değiştirilmesi Durum ve dosyalarındaki dosyaları değiştirmem gerekiyor. Denediğim ilk şey klasörleri yeniden adlandırmaktı, ama Git bu değişiklikleri almadı. Bu yüzden git mv -f controller Controller kullanarak çalıştı ama şöyle der:Windows

fatal: renaming 'application/classes/controller failed: Permission denied

Küresel ignorecase bayrağını ayarlama denedim:

git config --global core.ignorecase false

Ama hala çalışmıyor. Bazı insanlar klasörü repodan çıkarmayı, silmeyi, sonra yeniden eklemeyi önerdiler, ancak diğer insanlar repoyu aldığında bu değişiklik nasıl olacak? Denediğim başka bir şey var mı?

Düzenleme: Bu dosyalar için değil, klasörler için çalışır.

+3

İzin reddedildi, bu dizini geçerli dizini olan bir gezgin penceresine veya komut satırı istemcisine sahip olduğunuzdan ve böylelikle yeniden adlandırmayı engelleyebilir. Bunun böyle olmadığından emin olun ve tekrar deneyin. –

+0

Sorun, Windows dosya sisteminin gerçekten durum koruma olmasıdır. '' Denetleyici' '' Denetleyici''ye taşınma onu kendi içine taşırdı. Muhtemelen çözüm geçici ve daha sonra doğru adaya taşımaktır. Ya da iyi bir işletim sistemi kullanın ;-) –

+1

@MichaelWild NTFS, büyük/küçük harf duyarlıdır ve büyük/küçük harf değiştiren isimleri mükemmel şekilde ele alabilir. Daniel'in öne sürdüğü gibi bazı Explorer pencerelerinin bir şeyler engellemesi gerekiyor. – Barend

cevap

40

Yorumlar özeti olarak, dizini geçici bir adla yeniden adlandırmanız gerekir. Örneğin.

git mv controller Controller-tmp 
git mv Controller-tmp Controller 

Bu rename(2) ait MinGW uygulanması bu işlemi desteklemiyor gerçeği ile ilgisi olduğunu düşünüyorum. Bu thread, CRT rename uygulamasındaki MSDN belgelerine ve MoveFileEx işlevinin işlevlerine bakın.

0

Aşağıdaki gibi ara klasörlü bir klasörü yeniden adlandırdıktan sonra dizinde yapılan değişiklikleri eklediğinizden emin olun.

git mv oldfolder newfolder 

git add -u newfolder 

git commit -m "changed the foldername whaddup" 

Reference

+0

Deneyimlerimde 'git mv' zaten sahneyi yapıyor. Bu eski bir sürümü ile miydi? (2014 ...) – xtofl

0

Visual Studio ve bu yol ile ilgili herhangi bir Windows Gezgini klasörleri kapatmak için emin olun.