문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판이전 판다음 판 | 이전 판 | ||
| git:gitignore [2023/12/06 14:19] – [.gitignore 문법] taekgu | git:gitignore [2025/04/15 10:05] (현재) – 바깥 편집 127.0.0.1 | ||
|---|---|---|---|
| 줄 1: | 줄 1: | ||
| + | ===== .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. / | ||
| + | * e.g. bar/** 라고 하면 bar 디렉토리 하위의 모든 것(infinite depth)에 매칭된다. | ||
| + | ===== .gitignore 규칙 ===== | ||
| + | * .gitignore에 작성된 내용은 이미 tracked되고 있는 파일에는 영향을 주지 못한다. | ||
| + | * 우선순위는 아래의 순서에 따른다. | ||
| + | * 1. command line을 통해 입력된 패턴 | ||
| + | * 2. .gitignore 파일에 작성된 패턴 | ||
| + | * (하위 디렉토리에 작성된 .gitignore은 상위 디렉토리에 작성된 .gitignore의 내용을 override 한다.) | ||
| + | * 3. $GIT_DIR/ | ||
| + | * 4. 깃 설정 변수인 core.excludesFile에 작성된 패턴 | ||
| + | 위 우선순위 레벨 중 한 레벨 내에서는 가장 마지막에 작성된 내용이 우선순위를 갖는다. | ||
| + | 예를 들어 아래의 경우 모든 디렉토리의 bar.txt를 추적되지 않도록 exclude 하지만 현재 디렉토리의 bar.txt은 다시 include하게 된다. | ||
| + | <code config .gitignore> | ||
| + | # exclude | ||
| + | bar.txt | ||
| + | |||
| + | # include | ||
| + | !/bar.txt | ||
| + | </ | ||