[TIL] git이 영문 대소문자 변경을 구분하게 하는 법

minami·2022년 10월 17일
0

일개미

목록 보기
2/2

낫 놓고 기역자 아니, 꼬부랑 글씨도 모르는 git🙄

TIL이라고 하기엔 한 달이나 전에 기록해둔 걸 이제야 블로그에 작성하는 나보다도 더 바보 같은 git. 태생이 비영어권 국가인 것도 아니면서 우리 git이 영문 대소문자를 구분할 줄 모른다는 것을 나는 지난 달에서야 알게 되었다. 한창 디자인 시스템 새로 만든다고 정신이 없던 그때, 실수로 디렉토리명을 label로 해야 하는 것을 Label이라고 해버렸다.

물론, 아무도 내 실수를 눈치 채지 못했겠지만 온통 소문자로 시작하는 디렉토리명들 사이에 혼자 대문자로 적힌 게 내 눈에는 너무 크게 보였다. 하지만 이미 올려둔 PR을 아무 생각 없이 머지까지 한 다음에야 그걸 알게 되었으니 늦게라도 다음 PR에는 고쳐야 했다.

그런데 아무리 디렉토리명을 소문자로 바꿔서 PR을 올려놔도 소문자로 바꾼 게 도무지 먹히질 않았다. 내가 혹시 PR을 잘못 올렸나 싶어서 로컬에서 다시 바꾸고 git add .git status를 쳐봤는데 바뀐 게 없다. 띠로리... 이게 무슨 일인가 싶어서 다시 해봤는데도 똑같았다. 혹시나 해서 git commit까지 해봤는데도 똑같아서 두어 번 반복한 다음에 혹시나 하고 구글링을 해보니 내 잘못은 아니었다. 그냥 git이 그렇게 생겨먹었던 것이다.

git의 기본 설정 자체가 영문 대소문자를 무시하도록 되어있었따

git과 github을 사용한 지도 어언 2년이 넘었거늘 나는 아직 그런 것도 모르고 있었다. 나이도 이만큼 먹었는데 아직도 이렇게 모르는 게 많다😓 하지만 나는 영문 대소문자는 구분할 줄 아는 사람이다. 게다가 영어를 전공한 전공자가 아닌가. 내 이번 기회에 git이 영문 대소문자를 구분할 수 있게 기강을 잡아보기로 했다.

git에게 영문 대소문자를 가르쳐보자👩‍🏫

git의 기본 설정이 영문 대소문자의 구분을 하지 않도록 되어있다는 말은, 그런 git의 기본 설정값을 바꾸면 된다는 말이다. git의 기본 설정을 바꾸는 것은 매우 쉽다. 아래의 명령어만 터미널에 쳐주면 된다.

git config core.ignorecase false

이제 디렉토리명 뿐만이 아니라 파일명의 영문 대소문자를 바꾸어도 우리 기특한 git은 무엇이 바뀌었는지 알 수 있게 되었다.

하지만 나처럼 이미 그냥 바뀌지 않은 채로 github 원격 레포에 PR을 올리고 머지까지 해버린 경우라면 이것이 끝이 아니다. 다시 소문자로 제대로 바꾼 다음에 다시 git push를 해도 github 상에서는 바뀐 게 반영이 안 될 수가 있기 때문이다. 그럴 때에는 이렇게 하면 된다.

github 원격 레포에 올라간 코드에도 바뀐 영문 대소문자를 알려주자👩‍🏫

git rm -r --cached .
git add .
git commit -m '커밋 메시지'
git push origin ${브랜치 이름}

git rm -r --cached .는 이미 원격 레포에 올라가버린 기존 캐싱된 코드를 삭제하도록 하는 명령어이다. 해당 명령어를 입력한 후에는 항상 하던 것처럼 git add부터 git push까지 해주기만 하면 원격 레포에 이미 올라간 코드에도 영문 대소문자만 바뀐 것이 잘 적용된다. 여기까지 한다면 더 이상 문제 될 것이 없다. 이미 git config 명령어로 git이 대소문자를 구분하도록 해주었기 때문에 앞으로는 똑같은 일이 발생하지 않을 것이다. 이제 안심하고 영문 대소문자 변경을 마음껏 해도 된다, 야호

profile
함께 나아가는 개발자💪

0개의 댓글