본문 바로가기
  • 개발하는 곰돌이
Development/Git

[Git] .gitignore에 등록하지 않고 특정 파일을 git 변경사항 추적에서 제외해보자

by 개발하는 곰돌이 2023. 3. 12.

목차

    필요성

    git은 소프트웨어 형상 관리를 위해 별도로 .gitignore에 등록하여 git의 추적에서 제외한 파일이나 디렉토리가 아니라면 모든 변경사항을 추적하게 된다. 그리고 프로젝트를 수행하면서 기존에 커밋된 파일에 로컬에서만 사용할 코드나 DB에 접속하기 위한 설정 등을 남기고 싶은 경우가 있다.

     

    이 경우 .gitignore에 등록하자니 협업을 하는 다른 개발자들도 영향을 받게 되고, 매번 커밋할 파일에서 수동으로 제외하자니 번거로울 뿐만 아니라 실수로 커밋하여 푸시까지 하게 되면 협업하는 모든 개발자들이 영향을 받게 된다.

     

    이런 상황을 위해 git에서 로컬 상의 특정 파일만 변경사항 추적에서 제외하는 기능이 있다.

    방법

    적용

    방법은 매우 간단하다. 명령 프롬프트, PowerShell, git Bash 등의 터미널을 실행하여 프로젝트의 디렉토리로 이동한 후 아래 명령어를 입력한다. 인텔리제이에 내장된 터미널을 이용한다면 프로젝트의 디렉토리에서 바로 실행되므로 명령어만 입력하면 된다.

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

    예를 들어 스프링부트 프로젝트의 설정 파일을 git의 변경사항 추적에서 제외하고 싶다면 아래와 같이 입력하면 된다.

    git update-index --assume-unchanged ./src/main/resources/application.yml

    복구

    위에서 git의 변경사항 추적에서 제외한 파일의 변경사항을 다시 추적하고 싶다면 동일하게 터미널을 실행하여 프로젝트의 디렉토리로 이동한 후 아래의 명령어를 입력한다.

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

    예를 들어, 위에서 변경사항 추적에서 제외한 스프링부트 프로젝트의 설정 파일을 다시 추적하고 싶다면 아래와 같이 입력하면 된다.

    git update-index --no-assume-unchanged ./src/main/resources/application.yml

    예시

    위의 git update-index --assume-unchanged 명령어를 적용하지 않은 경우에는 아래와 같이 좌측에 해당 라인에 변경이 있는 것을 추적하고 있지만

    적용 전

    git update-index --assume-unchanged 명령어를 적용하면 아래와 같이 변경이 있는 라인의 파란 표시가 사라지는 것을 볼 수 있다.

    적용 후

    댓글