Git

.gitignore 쓰는 이유, 사용법

hihiha2 2023. 1. 9. 09:35

.gitignore 쓰는 이유


.gitignore 파일을 생성하여 git의 관리에서 특정 파일/폴더를 배제한다.

특정 파일만을 지정하여 git의 관리에서 제외하는 이유는 크게 나누었을때 2가지로 나뉜다.

 

1. 포함할 필요가 없을때

자동으로 생성되는 파일들 빌드의 결과물 .java -> .class로 빌드가 됨 
다운로드되는 파일들 라이브러리 node.js와 같이 언제든 인터넷에서 다운받을 수 있는 라이브러리

2. 포함하지 말아야할때

보안상 민감한 정보를 담은 파일 개인정보 비밀번호와 같이 민감한 정보는 git에 올리는 것이 아니라, 따로 관리하는 것이 안전

 

.gitignore 사용법


1.git 관리에 포함하고 싶지 않은 파일을 하나 만든다.

secrets.yaml이라는 이름으로 파일을 생성하였다.

id와 pw와 같은 민감정보를 포함하고 있어서 .gitignore를 통해서 git의 관리에서 배제되는 것이 좋은 파일이다.

git status을 통해서 이때의 상태확인:
git status를 통해서  git의 관점에서 파일을 보면, lions.yaml, secrests.yaml, tiger.yaml 이렇게 3개의 파일이 현재 git과 관련이 있다는 것을 알수있다. add를 하지 않았기 때문에 추적하지 않는 파일이라고 나온다. commit를 하지 않았기 때문에 git에 올라간건 아닌 상태이다. 
(이해를 위해하는것이지, .gitignore를 위해서 반드시 거쳐야하는 과정은 아님)

 

2. .gitignore이라는 파일을 생성한다.

3. .gitignore의 본문에 git에 포함하고 싶지 않은 파일의 이름을 적어준다.

git status을 통해서 이때의 상태확인:
추적하지 않는 파일의 목록에 secerts.yaml이 사라지고 .gitignore이 생긴것을 알 수 있다. 
더이상 git이 secrets.yaml은 고려하지 않는다는 의미이다.

 

 

폴더명에도 색깔이 사라져 gitIgnore이 된 것을 시각적으로 확인할 수 있다.

git status --ignored:
git status --ignored를 통해 ignore되어진것만 확인가능하다

 

 

.gitignore의 형식


git의 관리에서 제외하고 싶은 파일이름을 바로 적어줄 수도 있지만,

특정 확장자를 가진 파일 전체를 gitignore에 포함한다든지 아니면 특정 파일안의 내용들을 전부 포함하는 등의 여러가지 방법이 있다.

파일이름.확장자 secerts.yaml 모든 secerts.yaml
/파일이름.확장자 /secerts.yaml 최상위 폴더의 secerts.yaml
/폴더명 /project1 현재 폴더 중에서 project1안에 있는 모든 파일
*.확장자 *.abcd abcd라는 확장자를 가진 모든 파일
!파일이름.확장자 !not_secert.abcd abcd라는 확장자지만 무시하지 않을 파일
파일 or 폴더명 project1 project이라는 이름의 파일 또는 폴더
폴더명/ project1/ project1이라는 이름의 폴더
폴더명/파일명 project1/secerts.yaml project1이라는 폴더안의 secerts.yaml 파일
폴더명/*.확장자 project1/*.abcd project1이라는 폴더 바로 안의 abcd라는 확장자를 가진 모든 파일
폴더명/**파일명 project1/**/secerts.yaml project1이라는 폴더 바로 안 뿐만아니라, 그안에 들어있는 모든 하위 폴더안secerts.yaml

 

 


이렇게 직접 하나하나 gitignore 파일,폴더를 직접 지정해주기도 하지만 이미 gitignore이 저장되어 있는 경우가 있다. spring이나 Node.js와 같은 프레임워크나 라이브러리마다 무시해줘야할 파일이나 폴더들의 목록이 있는데 이것은 그 프레임워크/라이브러리를 다운받으면 .gitignore이라는 폴더안에 이미 저장되어있다.

 

예를 들어 spring을 다운받으면 .gitignore파일이 기본으로 포함되어 있고 spring을 사용할때 어떤것들을 git에 포함하지 말아야할지 미리 gitignore에 적혀있다. 

 

 

 

 

📚제대로 파는 Git & GitHub - by 얄코를 듣고 이해한 내용을 바탕으로 실습, 공부 후 직접 정리한 내용입니다.

.gitignore를 왜 쓰는지 그리고 어떻게 사용하는지를 이해하는 것이 중요하다고 생각하여 그것을 중심으로 정리해보았습니다📚