[Git] ignore

SANG JONG CHOI·2022년 10월 28일

Git

목록 보기
2/4

[1] .gitignore

특정 파일 혹은 폴더에 대해 Git이 버전 관리를 하지 못하도록 지정하는 것

(1) .gitignore에 작성하는 목록

  • 민감한 개인 정보가 담긴 파일 (전화번호, 계좌번호, 각종 비밀번호, API KEY 등)
  • OS(운영체제)에서 활용되는 파일
  • IDE(통합 개발 환경 - pycharm) 혹은 Text editor(vscode) 등에서 활용되는 파일
    • 예) pycharm -> .idea/
  • 개발 언어(python) 혹은 프레임워크(django)에서 사용되는 파일
    • 가상 환경 : venv/
    • __pycache__/

(2) .gitignore 작성 시 주의 사항

  • 반드시 이름을 .gitignore로 작성합니다. 앞의 점(.)은 숨김 파일이라는 뜻입니다.

  • .gitignore 파일은 .git 폴더와 동일한 위치에 생성합니다.

  • 제외 하고 싶은 파일은 반드시 git add 전에 .gitignore에 작성합니다.

왜 git add 전에 .gitignore에 작성해야 할까요?

git add a.txt 라고 작성하면, 이제 Git은 a.txt를 버전 관리의 대상으로 여깁니다. 한 번 버전 관리의 대상이 된 a.txt는 이후에 .gitignore에 작성하더라도 무시되지 않고 계속 버전 관리의 대상으로 인식됩니다.

따라서 제외 하고 싶은 파일은 반드시 git add 전에 .gitignore에 작성해야 합니다!

(3) .gitignore 쉽게 작성하기

.gitignore의 내용을 쉽게 작성할 수 있도록 도와주는 두 개의 사이트를 소개합니다. 자신의 개발 환경에 맞는 것을 찾아서 전체 복사, 붙여넣기를 하면 됩니다.

  1. 웹사이트

gitignore.io

  1. gitignore 저장소

https://github.com/github/gitignore

[2] 심화

(1) .gitignore 패턴 규칙

  1. 아무것도 없는 라인이나, #로 시작하는 라인은 무시합니다.
  2. 슬래시(/)로 시작하면 하위 디렉터리에 재귀적으로 적용되지 않습니다.
  3. 디렉터리는 슬래시(/)를 끝에 사용하는 것으로 표현합니다.
  4. 느낌표(!)로 시작하는 패턴의 파일은 ignore(무시)하지 않습니다.
  5. 표준 Glob 패턴을 사용합니다.
    • *(asterisk)는 문자가 하나도 없거나 하나 이상을 의미합니다.
    • [abc]는 중괄호 안에 있는 문자 중 하나를 의미합니다.
    • 물음표(?)는 문자 하나를 의미합니다.
    • [0-9]처럼 중괄호 안에 하이픈(-)이 있는 경우 0에서 9사이의 문자 중 하나를 의미합니다.
    • **(2개의 asterisk)는 디렉터리 내부의 디렉터리까지 지정할 수 있습니다. (a/**/z라고 작성하면 a/z, a/b/z, a/b/c/z 까지 모두 영향을 끼칩니다.)

(2) 패턴 예시

# .gitignore

# 확장자가 txt인 파일 무시
*.txt

# 현재 확장자가 txt인 파일이 무시되지만, 느낌표를 사용하여 test.txt는 무시하지 않음
!test.txt

# 현재 디렉터리에 있는 TODO 파일은 무시하고, folder/TODO 처럼 하위 디렉터리에 있는 파일은 무시하지 않음
/TODO

# build/ 디렉터리에 있는 모든 파일은 무시
build/

# folder/notes.txt 파일은 무시하고 folder/child/arch.txt 파일은 무시하지 않음
folder/*.txt

# folder 디렉터리 아래의 모든 .pdf 파일을 무시
folder/**/*.pdf
profile
No error, No gain

0개의 댓글