[Git Tip] .gitignore 설정
앞에 Git의 상태, Commit에 대한 포스팅 중 .gitignore
파일에 대해 잠시 말씀드렸습니다. 개념은 앞서
말씀드린 것처럼 프로그램 실행시 자동 생성되는 빌드 파일, 각 IDE의 고유 확장자, 개별적인 보안 파일
등을 Git의 추적 관리에서 제외하여 저장관리 효율과 보안성을 높이기 위한 것입니다.
이번 포스팅에서는 여기에 더해 몇가지 작성 패턴이나 참고 사이트 등을 추가로 정리하도록 하겠습니다. 참고로한 블로그는 다음과 같습니다.
1. .gitignore 파일 작성 규칙
.gitignore
파일은(파일명 없음) 앞서 말씀드린대로 프로젝트의 최상단(루트)폴더에 생성하시면 됩니다.
Git이 Untracked
를 유지할 파일들의 확장자나 폴더 등을 작성규칙에 따라 설정하시면 됩니다.
* 표준 Glob 패턴 사용
* '#' 으로 시작하는 라인은 주석처리됨
* '/'로 시작하는 경우 루트 폴더의 파일에만 적용(하위 폴더에는 적용하지 않음)
* 폴더(디렉터리)는 끝에 '/'로 끝내는 것으로 표시
* '!'로 시작하는 패턴은 무시하지 않고 추적 (포괄적으로 무시한 뒤 세부지정할 때)
참고로 ‘Glob 패턴’은 프로그래밍에서 와일드카드(*
, ?
)로 여러 파일의 집합을 지정하는 것을 말합니다.
그리고 이런 와일드카드 문법은 정규식 등에서도 쓰입니다. 위키 참조
# Example
# class 확장자 전체 제외
*.class
# 위에서 lib.class는 추적
!lib.class
# 루트폴더의 build.log만 제외 다른 하위 폴더 build.log는 추적
/build.log
# temp폴더 파일 전체 제외
temp/
# 등이 있습니다.
2. .gitignore 생성 사이트
다음 사이트는 키워드를 가지고 해당 IDE 등을 관련하여 적절한 .gitignore
파일을 간단히 생성해줍니다.
3. 나중에 .gitignore를 적용하게 될 경우
만약 초기에 .gitignore
을 설정하지 않았거나 .gitignore
에 필요한 항목을 추가하기 전에 이미 commit
혹은
push
까지 진행한 경우 다음과 같은 과정을 통해 gitignore
을 사후 적용시킬 수 있습니다.
git rm -r --cached .
git add .
git commit -m "커밋메시지 예를 들어 apply gitignore"
git push 저장소명 브랜치명
참고로 git rm
명령어는 로컬의 프로젝트 파일과 Git의 해당 파일 추적을 삭제하는 명령어 입니다.
git rm 파일명
git rm -r 폴더명
git rm --cached 파일명
git rm -r --cached . // 전체 삭제
-r
옵션을 사용하면 파일이 아니라 폴더도 함께 삭제가능하며 --cached
를 사용하면 로컬의 실제 파일은
보존하고 Git폴더의 관리 파일들만 삭제할 수 있습니다.
따라서 위에 git rm -r --cached
는 모든 파일과 폴더의 Git 추적을 삭제하고 add .
로 .gitignore
수정
이후에 추적해도 되는 모든 파일들을 다시 staged
하여 커밋하는 과정입니다.
언제나 읽어주셔서 감사합니다.^^
개인 공부용 블로그입니다.
잘못된 부분에 언제든지 댓글이나 메일로 지적해주시면 감사하겠습니다.
Leave a comment