Git에서 특정 파일 제외, 무시 하기
Git을 사용하다보면,
특정 파일은 아예 버젼 컨트롤에서 제외 시키고 싶을 때가 있습니다.
그럴 때는 아래와 같이 하시면 됩니다.
.git 이 있는 디렉토리 (최상위 폴더)에 가셔서
.gitignore 파일을 만듭니다.
그리고 그 파일에 아래 예시처럼 커밋을 제외하는 룰을 넣어 주면됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# Compiled source # ################### *.com *.class *.dll *.exe *.o *.so # Packages # ############ # it's better to unpack these files and commit the raw source # git has its own built in compression methods *.7z *.dmg *.gz *.iso *.jar *.rar *.tar *.zip # Logs and databases # ###################### *.log *.sql *.sqlite # OS generated files # ###################### .DS_Store* ehthumbs.db Icon? Thumbs.db |
문법은 설명이 필요 없을 만큼 간단하고요 #는 코멘트입니다.
.gitignore 파일 생성 후에
1 2 3 4 |
git add . git commit -m "add ignore file config" |
하셔야 동작합니다.
그런데 이렇게 해도 동작하지 않는 경우가 있습니다.
어떤 경우냐하면
이미 버젼 컨트롤이 시작된 파일은 이게 먹지 않습니다.
즉, commit 된 놈은 먹지 않는다는 거죠.
그런 파일들은 또 추가 처리를 해 줘야 합니다.
가령 제외 시키고 싶은 파일이 log 파일이라고 할 때,
먼저 아래 명령어로 제외 시키고 싶은 파일 리스트를 한번 봅니다.
1 2 3 |
git rm --dry-run *.log |
리스팅 되는 파일이 맞다면,
1 2 3 |
git rm *.log |
명령어로 버젼 컨트롤에서 제외 시킵니다.
그런 후에 .gitignore 파일에
1 2 3 |
*.log |
라인을 추가후에 커밑하면 모든 로그 파일에 대해서
git 이 더이상 추가하려 하지 않습니다.
단, rm 하실 때 필요한 파일이시라면
기존 파일을 따른데 잘 복사해 두세요.
만약, Git Repo에선 제외 되지만, 실제 디스크에는 지워지지 않도록 하기 위해선
1 2 3 |
git rm --cached *.log |
Remote에도 Push해주면 잘 적용됩니다.
1 2 3 |
git push origin master |