[Git] Git은 대소문자를 구분하지 않는다

sjoleee·2022년 9월 16일
2
post-thumbnail

문제 상황

프로젝트 진행중, netlify, vercel 등으로 배포하는 과정에서 빌드 오류가 발생했다.
로컬에서는 빌드가 제대로 되는데, 이상하게 플랫폼을 통한 호스팅 및 배포과정에서 빌드오류가 발생하는 상황이었다.

원인을 못찾아서 새벽에 몇시간이나 고생했다

원인

원인은 바로 파일명의 대소문자를 수정한 것이었다.
팀원이 파일명을 파스칼 케이스가 아닌 카멜 케이스로 생성해둔 것을 발견하여 파스칼 케이스로 변경한 것이 원인이었는데..
이렇게 적으면 금방 발견한 것 같지만, 소거법으로 모든 변경사항을 면밀히 찾아보고 겨우 발견했다.(진짜 힘들었다)

해결

결국 해당하는 파일들을 전부 삭제하고 재생성하여 해결했다

해결방법을 찾아보니 아래와 같은 방법이 있었다.

Git이 대소문자를 무시하지 못하게 설정 변경

git config core.ignorecase false

이후 대소문자 변경하고 push
이때 캐시 관련 오류가 발생하면 아래와 같이 해결할 수 있다.

git rm -r --cached .
git add .
git commit -m "delete cache"

git mv 명령어 사용

git mv foo.js temporary-name
git mv temporary-name Foo.js

파일명을 변경할때 mv 명령어로 수정하면 빌드 오류가 발생하지 않는다.

문제 예방

가장 중요한 것은 컨벤션을 지키는 것이다.
아직도 프로젝트에는 수많은 카멜 케이스 파일명이 남아있다... ㅠㅠ
이런 불상사를 방지하기 위해서라도 컨벤션은 꼭 지켜야한다는 것을 절실히 느꼈다.

프로젝트를 시작할 때 컨벤션을 제대로 설정하지 못하고 개발에 들어갈 수밖에 없었던 사정이 있었는데, 앞으로의 프로젝트에서는 밑작업을 튼튼히 해놓고 시작하는 습관을 들여야겠다고 생각했다.

참고한 글
https://papababo.tistory.com/entry/git-%EC%9D%80-%ED%8F%B4%EB%8D%94%ED%8C%8C%EC%9D%BC%EB%AA%85%EC%9D%98-%EB%8C%80%EC%86%8C%EB%AC%B8%EC%9E%90%EB%A5%BC-%EA%B0%9C%EB%AC%B4%EC%8B%9C%ED%95%9C%EB%8B%A4-%EA%B7%B8%EB%9F%BC-%EC%9A%B0%EC%A7%B8
https://stackoverflow.com/questions/58192285/is-it-a-good-idea-to-set-git-config-core-ignorecase-to-false

profile
상조의 개발일지

0개의 댓글