다들 한번씩 .gitignore 파일에 제외를 깜빡하고 push를 한적이 있을것이다.
이럴경우 어떻게 어떻게 하면되는지에대해서 알아보자.

어이쿠.. push를 해버렸네? 제외해보자!

나같은경우 아래와 같이 .idea/workspace.xml이 따라다니고 있다.
이유는 이미 origin에 파일자체를 push를 해버려서 .gitignore 파일에 .idea/*를 명시에 주었지만 소용이 없다.

현재 브랜치 master
브랜치가 'origin/master'에 맞게 업데이트된 상태입니다.

커밋할 변경 사항:
  (use "git restore --staged <file>..." to unstage)
        삭제함:        .idea/workspace.xml

추적 중지

추적하지 않을 파일을 아래와 같이 명시해주면 이미 origin에 올라간 파일이라도 더이상 추적을 하지 않게된다.

git update-index --assume-unchanged .idea/workspace.xml

git update-index 명령은 작업트리의 색인과 관련된 명령어로 (추가,제거,새로고침 등) 다양한 옵션을 제공한다.
자세한 정보는 https://git-scm.com/docs/git-update-index 에서 참고 바란다.

추적중지 명령어를 입력하고 나서 git status 실행해보았다

➜  github_blog git:(master) git status
현재 브랜치 master
브랜치가 'origin/master'에 맞게 업데이트된 상태입니다.

커밋할 사항 없음, 작업 폴더 깨끗함

추적 재개

추적을 재개하고싶을때도 앞에 --no를 추가적으로 붙여주면 다시 추적을 재개한다.

git update-index --no-assume-unchanged [file]

추가 꿀팁

unchanged로 등록된 파일을 보고 싶으면 아래와 같이 명령어로 살펴볼수도 있다.
여기서 자세히 보면 소문자 h가 우리가 위에서 등록된 그 파일이다.
git ls-files -v| grep ^h 이렇게 명령해두 된다!

➜  github_blog git:(master) ✗ git ls-files -v
H .idea/vcs.xml
h .idea/workspace.xml
H Gemfile
H Gemfile.lock
H README.md

사실 별건아니지만 나처럼 이미 Push를 해버려 계속 추적되어 골치인 사람에게 필요한 사람에 도움이 됬으면 좋겠다.

코로나 조심하시구 다음 포스팅때 또 만나요!