2013-01-29 1 views
18

폴더와 대소 문자를 변경해야합니다. . 내가 시도한 첫 번째 일은 폴더의 이름을 변경하는 것이지만, Git은 변경 사항을 선택하지 않았다. 그래서 git mv -f controller Controller를 사용하여 시도했지만 말한다 :Windows의 Git bash에서 폴더의 대소 문자 변경

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

나는 세계 IGNORECASE 플래그를 설정 시도 :

git config --global core.ignorecase false

하지만 여전히 작동하지 않습니다. 어떤 사람들은 repo에서 폴더를 옮기고, 삭제하고, 다시 추가 할 것을 제안했지만 다른 사람들이 repo를 가져 왔을 때이 변경 사항이 선택 되나요? 내가 할 수있는 다른 것이 있습니까?

편집 : 파일에는 적용되지만 폴더에는 적용되지 않습니다.

+3

Permission denied는 단순히이 폴더를 현재 디렉터리로 사용하는 탐색기 창이나 명령 줄 클라이언트를 가지고 있으므로 이름 바꾸기를 막을 수 있습니다. 이것이 사실이 아닌지 확인하고 다시 시도하십시오. –

+0

문제는 Windows 파일 시스템이 실제로 대소 문자를 보존한다는 것입니다. 'controller'를'Controller '로 옮기면 스스로 움직일 수 있습니다. 아마도 해결책은 임시로 이동 한 다음 올바른 이름으로 이동하는 것입니다. 또는 괜찮은 OS를 사용하십시오 ;-) –

+1

@MichaelWild NTFS는 대소 문자를 보존하며 대소 문자를 변경하는 이름을 완벽하게 처리 할 수 ​​있습니다. Daniel이 제안한 것처럼 일부 항목을 차단하는 다른 프로그램이있을 수 있습니다. – Barend

답변

40

요약을 요약하면 중간 임시 이름을 통해 디렉토리의 이름을 변경해야합니다. 예 :

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

나는이 rename(2)의는 MinGW 구현이 작업을 지원하지 않는다는 사실과 관련이있다 생각합니다. 이 thread, CRT rename 구현의 MSDN 문서 및 MoveFileEx 기능을 참조하십시오.

0

다음과 같이 중간 폴더가있는 폴더의 이름을 변경 한 후 색인에 변경 사항을 추가해야합니다.

git mv oldfolder newfolder 

git add -u newfolder 

git commit -m "changed the foldername whaddup" 

Reference

+0

제 경험상,'git mv'는 이미 준비 작업을하고 있습니다. 이 버전이 이전 버전입니까? (2014 ...) – xtofl

0

Visual Studio 및 해당 경로와 관련된 Windows 탐색기의 폴더를 닫해야합니다.