how to update .gitIgnore but it is not applied after it committed (.gitIgnore 추가적용)
0. 현상
text.txt
파일은 참고용으로push
했던 파일이고, 내 로컬에서만 봐도 괜찮다.- 커밋할 필요가 없으므로
.gitIgnore
에 추가하고 싶음. - 그래서
.gitIgnore
에text.txt
파일명 append 해서 push 함. - 이후
text.txt
내용을 업데이트 하니UnCommitted changes
에 계속 나타남. - 업데이트한
.gitIgnore
사항대로UnCommitted changes
에도 안나타나게 하고싶음.
1. 미리 커밋&push(해버린) text.txt
파일
3. …했으나 text.txt
수정해도 uncommitted changes
에 나타남
1. 원인
- (알다시피)
.gitIgnore
는 커밋 무시하는 파일 목록 (커밋할 필요가 없는 파일) - 이미 커밋한 파일이므로
.gitIgnore
는 무시됨.
2. 조치
2-1. (소견) 약간 위험한 방법
- 검색 결과 나온 방법 중 하나
1 2 3 4
$ git rm -r --cached . $ git add . $ git commit -m "[fixed 되었다는 메시지 작성]" $ git push origin [branch]
git rm -r --cached .
명령에서 본 작업공간 cache에 추가했던 모든 파일을 삭제처리 하는uncommitted changes
가 생성됨.cached
라 상관없을 듯 해 보이나, 커밋 기록상 삭제가 필요없는 파일까지 모두 삭제하는 커밋을 생성시킴.- 이후 배포 딜리버리 중 문제 발견되었을 때 의심의 원인이 됨
- 문제에 대한 원인 검증 시간 소요됨 (비효율 발생)
- 실수 방지화 효율화 관점상 안티패턴같이 느껴짐.
그래서 아래
2-2
방법을 수행함.
2-2. 조치 & 결과
text.txt
내 로컬다른경로에 백업
해두고삭제 커밋&push
- 백업해둔
text.txt
다시 작업디렉토리에 둠.
3. uncommitted changes에 걸리지 않는다. text.txt
3. 적용 예
- 자신의 github.io(github pages) 에 jekyll 블로그 템플릿 적용할 때
Gemfile.lock
같은 파일을함께 커밋&push
해버려서- 로컬에서는 동작하나
github action
으로 배포 할때 빌드 깨지는 경우가 생김.
This post is licensed under CC BY 4.0 by the author.