티스토리 뷰

 

Git으로 프로젝트를 관리할 때 어떤 파일은 Git이 관리할 필요가 없다. 보통 로그 파일이나 빌드 시스템이 자동으로 생성한 파일이 그렇다. 그런 파일을 무시하려면 .gitignore 파일을 만들고 그 안에 무시할 파일 패턴을 적는다.



파일 무시하기

.gitignore 파일은 보통 처음에 만들어 두는 것이 편리하다. 그래서 Git 저장소에 커밋하고 싶지 않은 파일을 실수로 커밋하는 일을 방지할 수 있다.


.gitignore 파일에 입력하는 패턴은 아래 규칙을 따른다.


  • 아무것도 없는 라인이나 #로 시작하는 라인은 무시한다.
  • 표준 Glob 패턴을 사용한다.
  • 슬래시(/)로 시작하면 하위 디렉터리에 적용되지(recursivity) 않는다.
  • 디렉터리는 슬래시(/)를 끝에 사용하는 것으로 표현한다.
  • 느낌표(!)로 시작하는 패턴의 파일은 무시하지 않는다.

Glob 패턴은 정규표현식을 단순하게 만든 것으로 생각하면 되고 보통 셸에서 많이 사용한다.


애스터리스크(*)는 문자가 하나도 없거나 하나 이상을 의미하고, [abc]는 중괄호 안에 있는 문자 중 하나를 의미한다 (그러니까 이 경우에는 a, b, c 중 하나). 물음표(?)는 문자 하나를 말하고, [0-9]처럼 중괄호 안의 캐릭터 사이에 붙임표(-)를 사용하면 그 캐릭터 사이에 있는 문자 하나를 말한다. 애스터리스크를 2개 사용하여 디렉터리 안의 디렉터리까지 지정할 수 있다. a/**/z 패턴은 a/z, a/b/z, a/b/c/z 디렉터리에 사용할 수 있다.


아래는 .gitignore 파일의 예이다.


  • # 확장자가 .a인 파일 무시
  • *.a
  • # 윗 라인에서 확장자가 .a인 파일은 무시하게 했지만 lib.a는 무시하지 않음
  • !lib.a
  • # 현재 디렉터리에 있는 TODO 파일은 무시하고 subdir/TODO 처럼 하위 디렉터리에 있는 파일은 무시하지 않음
  • /TODO
  • # build/ 디렉터리에 있는 모든 파일은 무시
  • build/
  • # doc/notes.txt 파일은 무시하고 doc/server/arch.txt 파일은 무시하지 않음
  • doc/*.txt
  • # doc 디렉터리 아래의 모든 .pdf 파일을 무시
  • doc/**/*.pdf

GitHub은 다양한 프로젝트에서 자주 사용하는 .gitignore 예제를 관리하고 있다. 어떤 내용을 넣을지 막막하다면 https://github.com/github/gitignore 사이트에서 적당한 예제를 찾을 수 있다.

 


'Server & Etc > Git' 카테고리의 다른 글

Git 기본 설정(git config)  (0) 2018.10.27
msys – 윈도우에서 Git 사용하기  (0) 2018.10.27
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크