코딩항해기
[Git] push 특정 파일, 폴더 제외 (ignore) 본문
특정 파일, 폴더를 깃 관리에서 제외하고 싶을 때는 .gitignore 파일을 이용하면 된다.
먼저 메모 파일을 하나 만든 뒤 이름을 .gitignore로 변경한다. (확장자가 붙지 않도록 주의한다)
이 안에 git 관리에서 제외할 파일, 폴더명을 작성하면 되는데 Glob패턴을 사용한다.
.gitignore 파일에 입력하는 패턴 규칙
- 아무것도 없는 라인이나, #으로 시작하는 라인은 무시
- /로 시작하면 하위 디렉터리에 적용되지 않음 (recursivity)
- 디렉터리는 끝에 슬래시 /를 사용하는 것으로 표현
- !로 시작하는 패턴의 파일은 무시하지 않음
- *: 문자가 하나도 없거나 하나 이상을 의미
- [abc]: 는 중괄호 안에 있는 문자 중 하나를 의미 (이 경우 a 혹은 b 혹은 c)
- ?: 문자 하나를 의미
- [0-9]: 캐릭터 사이에 있는 문자 하나를 의미
- * 두 개: 디렉터리 안의 디렉터리까지 의미
ex) a/**/z 패턴은 a/z, a/b/z, a/b/c/z 와 같이 a와 z 사이의 모든 디렉터리 및 파일을 의미
# 파일 제외 (파일명.확장자)
파일명.txt
# 현재 경로에 있는 파일만 제외 (다른 경로의 동일한 파일명은 추적)
/파일명.txt
# 특정 경로안의 특정 파일 제외
폴더명/파일명.txt
# 특정 폴더안의 파일 전부 제외
폴더명/
# 해당 확장자 파일 전체 제외
*.txt
# 예외
!제외할 파일명.txt
사용
new.txt 파일과 .gitignore 확장자를 가진 파일을 제외했다.
이 상태로 관리할 수 있는 파일의 상태를 보면,
제대로 제외된 것을 확인할 수 있다.
주의사항
이미 기존의 git 관리를 받고 있던 파일이나 폴더는 ignore 파일에 작성하고 add > commit > push해도 무시되지 않는다.
이럴 때는 기존에 가지고 있던 cached를 치워야된다.
## 파일 이라면
git rm --cached test.txt
## 전체파일 이라면
git rm --cached *.txt
## 폴더 라면
git rm --cached test/ -r
git rm --cache 명령어는 Staging Area(add 를 하고나서의 영역)에서 파일을 제거하고 working directory(Local)에서는 파일을 유지하는 명령어로 실행한 후 꼭 commit을 해야한다.
기존에 관리하고 있던(commit된 것들) 파일을 cached 하지 않고도 무시하는 방법도 있다.
무시 선언
$ git update-index --assume-unchanged [파일명]
취소 선언
$ git update-index --no-assume-unchanged [파일명]
무시 파일 조회
$ git ls-files -v|grep '^h'
'git' 카테고리의 다른 글
[Git] Git-Hub로 그룹 프로젝트하기 : 팀 리더편 (0) | 2024.09.22 |
---|---|
[Git] git 기본 명령어 정리 (0) | 2024.09.22 |
[Git] GitHub Desktop 사용법 - 기존 local 깃 폴더 관리 추가 (0) | 2024.09.06 |
[Git] 초기세팅 (GitHub/windows11) (0) | 2024.08.28 |
[Git] Semantic Versioning - 버전 관리(규칙) (0) | 2024.08.16 |