2013-01-29 11 views
18

Potrzebuję zmienić wielkość folderów i plików . Pierwszą rzeczą, którą próbowałem, było przemianowanie folderów, ale Git nie odebrał zmian. Tak próbowałem przy użyciu git mv -f controller Controller ale mówi:Zmiana skrzynki folderu za pomocą polecenia Git bash w systemie Windows

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

Próbowałem ustawienie flagi globalnej ignoreCase:

git config --global core.ignorecase false

Ale to nadal nie działa. Niektórzy sugerują, aby przenieść folder z repozytorium, usunąć, a następnie ponownie dodać, ale czy ta zmiana zostanie zauważona, gdy inne osoby wyślą repozytorium? Czy jest coś jeszcze, co mógłbym spróbować?

Edytuj: Działa dla plików, ale nie folderów.

+3

Odmowa uprawnień może wynikać z faktu, że masz okno eksploratora lub klienta wiersza poleceń, który ma ten folder jako bieżący katalog, a tym samym zapobiega zmianie nazwy. Upewnij się, że tak nie jest i spróbuj ponownie. –

+0

Problem polega na tym, że system plików Windows naprawdę zachowuje wielkość liter. Przeniesienie 'kontrolera' do' Controller' przeniesie go do siebie. Prawdopodobnie rozwiązaniem jest przeniesienie go do tymczasowego, a następnie na poprawną nazwę. Lub użyj przyzwoitego systemu operacyjnego ;-) –

+1

@MichaelWild NTFS zachowuje wielkość liter i potrafi obsłużyć modyfikujące przypadki nazwy całkiem dobrze. Musi być coś jeszcze blokującego pewne rzeczy, prawdopodobnie jakieś okno Eksploratora, jak sugerował Daniel. – Barend

Odpowiedz

40

Podsumowując komentarze, będziesz musiał zmienić nazwę katalogu poprzez pośrednią tymczasową nazwę. Na przykład.

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

myślę, że to ma coś wspólnego z faktem, że realizacja MinGW z rename(2) nie obsługuje tej operacji. Zobacz: thread, dokumenty MSDN w implementacji CRT rename i funkcje MoveFileEx.

0

Pamiętaj, aby dodać zmiany do indeksu po zmianie nazwy folderu z pośrednim folderem, jak poniżej.

git mv oldfolder newfolder 

git add -u newfolder 

git commit -m "changed the foldername whaddup" 

Reference

+0

Z mojego doświadczenia wynika, że ​​'git mv' już robi inscenizację. Czy było to ze starszą wersją? (2014 ...) – xtofl

0

Należy zamknąć Visual Studio i żadnych folderów Eksploratora Windows związanych z tą ścieżką.

Powiązane problemy