본문 바로가기

끄적/트러블슈팅

윈도에서 Git 사용시 파일명 소문자로 일괄 변경

반응형

윈도에서 Git을 사용할 때의 가장 큰 애로사항은, 파일명을 대문자나 소문자로 바꿀 때 발생합니다. 윈도는 맥이나 리눅스와 다르게 파일명의 대소문자를 구분하지 않고(case-insensitive), Git을 설치했을 때 대소문자를 구분하지 않도록 기본 설정되어 있습니다. 그래서 아무 생각 없이 파일명을 변경한 다음, 나중에 저장소를 풀 하면 파일명이 엉망진창이 됩니다.

이런 사태를 예방하기 위해서, Git으로 관리중인 파일의 파일명을 바꿀 때에는 Git mv 명령을 사용해서 바꿔야 합니다. 이 경우 윈도 같은 시스템에서는 대소문자가 다른 두 이름을 같은 이름으로 인식할 수 있기 때문에, 에러가 발생하는 경우에는 --force 로 강제하면 됩니다.

 git mv --force FileName.Ext filename.ext

아니면 다음 설정으로 Git이 대소문자를 구분하게 설정할 수도 있습니다.

git config --global core.ignorecase false

그리고 특정 폴더 아래의 모든 파일에 적용하려면, 윈도의 PowerShell을 열어서 특정 폴더로 이동한 다음, 다음과 같이 실행하면 됩니다.

Get-ChildItem -Recurse -File | Resolve-Path -Relative | ForEach-Object {git mv $_ $_.ToLower()}

현재 폴더 안에 있는 파일들을 전부 조회해서 상대경로로 변환된 목록을 만든 다음, 각 파일을 git mv를 사용하여 소문자로 변환하게 됩니다.

반응형