Git

[Git] 프로젝트에 .gitignore 사용 방법, 깃 이그노어 패턴 규칙 사용하기

띵지니어 2024. 4. 5. 03:22
반응형

안녕하세요 띵지니어 😼 입니다.

오늘은 프로젝트 파일에 gitignore를 추가하는 방법과
사용하는 패턴에 대해 알아볼게요

 

🤔 gitignore 가 뭐지?

git을 활용하여 협업을 할 때 저희는 프로젝트 파일을 공유합니다.
이때 보안상 문제가 되는 파일이나,
GitHub와 같은 외부 저장소에 올리고 싶지 않은 것들을 등록하는 파일 입니다.

즉, 협업에서 "해당 파일을 무시하겠다" 라고 생각하면 됩니다.

 

🍀 .gitignore 사용법

사용법은 간단합니다.

1. .gitignore를 프로젝트 파일에 넣는다.

window는 메모장
iOS는 텍스트 편집기로 만들 수 있어요!

저는 Mac 유저이기 때문에 런치 패드에 텍스트 편집기를 검색해서 열어줄게요

 

별도의 확장자 없이 .gitignore 파일을 만들어 줍니다.

 

아래처럼 알림표시가 뜨게 되는데 '.' 사용 부분을 클릭 하면 됩니다.

 

참고로 쩜(.) 파일은 숨겨져 있기 때문에
Mac 기준으로 Shift+command+.(쩜) 하면 파일을 볼 수 있어요!


아래와 같이 깃 파일에 잘 들어가 있는 걸 볼 수 있어요!

 

2. 아래 사이트에 가서 .gitignore 내용을 만들어 줍니다.

 

https://www.toptal.com/developers/gitignore/

 

gitignore.io

Create useful .gitignore files for your project

www.toptal.com

위 사이트에서 프로젝트에 맞는 키워드를 검색해서 등록하면 됩니다!

 

저는 iOS 프로젝트이기 때문에 

SwiftXcode 키워드로 생성해 주면 알아서 .gitignore 내용을 생성해 주기 때문에

생성한 내용을 복사해서 .gitignore 파일에 추가해 줍니다!

아래와 같이 등록하면 끝입니다 ‼️

 

추가로 실제 프로젝트를 할 때 외부 저장소에 올리지 않을 파일을 적어놓으면 됩니다!

 

‼️ 깃 이그노어 등록 패턴 ‼️

참고로 "#" 으로 시작하는 라인은 주석(Comment) 입니다.

 

✅ 단일 애스터리스크 (*)

정의: 0개 이상의 문자와 일치합니다.

예시: *.log는 확장자가 .log인 모든 파일을 무시합니다.

 

✅ 물음표 (?)

정의: 정확히 하나의 문자와 일치합니다.

예시: ?.txt는 한 문자로 이루어진 이름을 가진 .txt 파일을 무시합니다 (예: a.txt, b.txt).

 

✅ 대괄호 ([ ])

정의: 대괄호 안에 있는 문자 중 하나와 일치합니다.

예시: log[123].txt는 log1.txt, log2.txt, log3.txt를 무시합니다.

 

✅ 느낌표 (!)

정의: 부정 패턴을 만들어, 이전에 정의된 무시 규칙을 덮어씁니다.

예시: *.log 다음 줄에 !important.log를 추가하면, 모든 .log 파일을 무시하지만 important.log는 무시하지 않습니다.

 

✅ 디렉토리 지정 (/)

정의: 경로의 시작이나 끝에 사용되어 특정 디렉토리를 지정합니다.

예시: /fileName 은 루트 디렉토리의 fileName 디렉토리를 무시하고, fileName/는 어디에나 있는 fileName 디렉토리를 무시합니다.

 

✅ 이중 애스터리스크 (**)

정의: 여러 디렉토리 레벨에 걸쳐 일치시킵니다.

예시: **/fileName는 프로젝트 내 어디에 있든 fileName 디렉토리를 무시하고, **/*.log는 모든 디렉토리 내의 .log 파일을 무시합니다.

 

패턴 규칙 적용 예시

# 모든 .log 파일 무시
*.log

# 단, important.txt는 무시하지 않음
!important.txt

# 최상위 디렉토리의 fileName 만 무시
/fileName

# 모든 bin 디렉토리 무시
**/bin/

# 모든 txt 파일 중 a로 시작하는 파일만 무시
a*.txt

# root 디렉토리 아래의 모든 .pdf 파일 무시
/**/*.pdf

 

MacOS Sonoma 14.2.1
환경에서 작성 한 글입니다.

감사합니다. 🤗

반응형