Back to writing
미분류 1 min read HYEONG HWAN, MUN

git 에서 특정 파일만 추적하고 싶지 않을때 untrack production file

프로젝트의 환경설정 파일을 추척하지 않는 방법에 대해 설명한다.

 

이런 방법에는 2가지가 있음

assume-unchanged 와 skip-worktree 가 있음.

 

사용법

FILENAME 을 (또는 폴더를) 변경되지 않는다고 가정함.

git update-index --assume-unchanged FILENAME

프레임워크나 sdk 등의 폴더에 설정한다. 이 폴더는 "변화하지 않았다고 가정" 하는 것이다.

php 의 vendor(composer), nodejs 의 node_modules 폴더에 적용하면 된다.
assume-unchanged 가 설정되면 해당 파일폴더를 변경검사하지 않는다. 이것은 git 비교의 성능향상의 목적이 있다.

만약 assume-unchaged 파일폴더가 변경되었고, 커밋되었다면 (새로운 파일이 추가되었거나 변경되면), 자동으로 assume-unchanged 플레그가 해제되고 변경을 확인하게 된다.

 

다시 추적하기

git update-index --no-assume-unchanged FIL_NAME

 

사용법

 

절대로 변경을 추적하지 않는 것이다.

변경이 생기면 flag 가 자동으로 풀리는 assume-unchanged 와 달리, skip-worktree 는 해당폴더의 파일(폴더가) 변경이 생겼더라도 flag 가 유지된다.

git update-index --skip-worktree FILENAME

 

다시 추적하기

git update-index --no-skip-worktree FILENAME