.gitignore 문법
공백 → no files
#로 시작하는 line → 주석
\를 통해 escape 할 수 있다.
! → 이전 패턴에 의해 exclude 되었던 파일을 다시 include한다.
상위 디렉토리가 exclude된 경우 해당 파일은 include 할 수 없다.
(git은 excluded files를 관리하지 않기 때문에 !가 영향을 주지 못한다.)
/ → 디렉토리 간 구분자로 사용된다.
/ 위치에 따른 규칙 존재
bar → 디렉토리 위치에 관계 없이 bar 이라는 디렉토리 하위의 파일 혹은 디렉토리를 무시
/bar → 현재 디렉토리 (.gitignore 위치 기준) 에 위치한 bar 하위의 파일 혹은 디렉토리를 무시
bar/ → bar은 디렉토리에만 매칭 (즉, bar이라는 파일에는 매칭 X)
bar → bar는 디렉토리거나 파일이름일 수 있다.
* → /를 제외한 모든 것에 매칭
? → /를 제외한 한 글자에 매칭
→ 디렉토리 사이의 전체 경로에 매칭
* e.g. /bar//foo/ 라고 하면 현재 경로에서 bar 하위의 여러 디렉토리를(infinite depth) 거쳐 발견된 foo 디렉토리에 매칭된다.
.gitignore 규칙
위 우선순위 레벨 중 한 레벨 내에서는 가장 마지막에 작성된 내용이 우선순위를 갖는다.
예를 들어 아래의 경우 모든 디렉토리의 bar.txt를 추적되지 않도록 exclude 하지만 현재 디렉토리의 bar.txt은 다시 include하게 된다.
- .gitignore
# exclude
bar.txt
# include
!/bar.txt