게시글

5만명이 선택한 평균 별점 4.9의 제로초 프로그래밍 강좌! 로드맵만 따라오면 됩니다! 클릭
강좌9 - Git - 3년 전 등록 / 4달 전 수정

특정 파일만 커밋하지 않기(--assume-unchanged)

보통 git에서는 .gitignore을 사용해서 특정 파일을 git이 관리하지 않게 만듭니다. 그런데 실무를 하다 보면 이미 commit한 파일이지만, 이번 커밋 한 번은 수정 사항이 반영되지 않게 하고 싶은 경우가 생깁니다. 설정 파일같은 것을 예로 들 수 있겠습니다.

  1. 공통 설정 파일이 있는데, 이것을 팀원별로 수정해서 사용하는 걸 상상해봅시다. A라는 사람이 설정파일을 자기의 키값으로 수정했는데 실수로 그 파일을 커밋+푸쉬해버리면 다른 팀원들과 충돌이 나게 됩니다. 다른 팀원들이나 마스터가 그 파일을 다시 원래대로 되돌리는 커밋을 한 번 더 날려야되는 상황이 나오죠.
  2. robots.txt가 브랜치별로 다른 경우도 있을 수 있습니다. main 브랜치에서는 Allow: / 인데 beta 브랜치에서는 Disallow: /인 경우 각각의 브랜치에서 커밋해버리면 서로 머지할 때 문제가 됩니다. 이럴 때는 beta 브랜치에서 Disallow: / 해둔 것을 무시해야 합니다. 다만 git status에서 modified로 잡혀서도 안 됩니다.

이럴 때는 팀원들에게 그 설정 파일에 대해서는 커밋을 하지 않게 만들도록 지시할 필요가 있습니다. 여기서 쓰는 게 --assume-unchanged입니다.

git update-index --assume-unchanged 파일경로

이렇게 하면 해당 파일은 변경 사항이 생겨도 git이 추적하지 않습니다. 이번 커밋에서만 무시하는 게 아니라 계속 추적하지 않으므로 다시 추적하게 하는 명령어가 필요합니다.

git update-index --no-assume-unchanged 파일경로

해도 되고 파일이 여러 개라면 다음과 같이 한 번에 할 수도 있습니다.

git update-index --really-refresh
조회수:
0
목록
투표로 게시글에 관해 피드백을 해주시면 게시글 수정 시 반영됩니다. 오류가 있다면 어떤 부분에 오류가 있는지도 알려주세요! 잘못된 정보가 퍼져나가지 않도록 도와주세요.
Copyright 2016- . 무단 전재 및 재배포 금지. 출처 표기 시 인용 가능.
5만명이 선택한 평균 별점 4.9의 제로초 프로그래밍 강좌! 로드맵만 따라오면 됩니다! 클릭

댓글

1개의 댓글이 있습니다.
2년 전
현재 변경사항만 무시하고 다음 변경 사항부터 추적하는것이 안되려나요?
변경 안되는 부분만 한 파일로 모아놓고 불러오는게 좋겠네요