.gitignore에 추가하지 않고 변경사항 무시하는 방법

특정 파일 변경사항을 git으로 트래킹하고 싶지 않은 경우 .gitignore에 추가하면 된다.

그런데 .gitignore에 추가하지 않으면서, 로컬의 변경사항을 무시하고 싶은 경우가 있다.

예를 들면 sdk 설정같은 개인별로 다르게 설정할 수 있는 부분인데, jdk를 설정한다고 하면 mise를 쓸 수도 있고, jenv를 쓸 수도 있고, sdkman을 쓸 수도 있다. 이 툴들의 개인별 설정파일을 모두 .gitignore에 등록하는것도 가능은 하지만, 툴이 워낙 많기도 하고 번거로우니, 이 경우엔 로컬에서 변경사항을 무시하는 것으로 충분하다고 생각한다.

아직 git에서 트래킹되지 않는 파일인 경우

.git/info/exclude 에 무시할 파일을 추가한다

mkdir -p .git/info
echo {무시할_파일} > .git/info/exclude

이미 git에서 트래킹하는 파일인 경우

이미 기존에 커밋되어서 트래킹되는 파일인데, 로컬 변경사항만 무시하고 싶은 경우엔 아래 명령어를 사용한다

git update-index --assume-unchanged {무시할_파일}

만약 나중에 다시 git에 변경사항을 반영하고 싶다면, 아래 명령어로 되돌리면 된다

git update-index --no-assume-unchanged {다시_반영할_파일}