GIT

GIT : .gitignore로 파일 무시하는 방법은?

A Thin Idea 2023. 1. 20. 12:00
반응형

git ignore

프로젝트에서 작업하면서 깃을 사용할 때, 갖고 있는 파일이나 디렉토리가 어느 시점에서 깃에게 알려지거나 추적되는 것을 원치 않고 완벽하게 제외되길 원하는 상황이 가끔 있습니다. 그리고 이것을 위한 매커니즘이 있습니다. .gitignore라는 특정 파일을 생성할 수 있습니다.

 

.gitignore

 

 

ignore 필요한 이유

가장 흔한 것 중의 하나는, 만약 코드를 작성하는 응용프로그램에서 API 키나 자격증명을 사용해서 작업하고 있거나 잠재적으로 신용카드와 연결된 아마존 웹서비스같은 종류의 응용프로그램의 비밀 또는 사용하고 있는 몇몇 API가 있다면 그것들이 세상밖으로 알려지는 것을 원치 않을 것입니다.

그래서 그런 것들을 별도의 파일에 넣습니다. 그리고 만약 코드를 깃허브에 푸시해서, 그 코드를 공유하고 공개해야 한다면, 그 파일이 포함되는 것을 원치 않습니다. 그리고 여전히 로컬에 파일을 갖고 있지만 깃이 그 파일을 추적하는 것은 원치 않습니다. 커밋하고 싶지 않은 또다른 파일은 운영 시스템 파일입니다.

프로젝트나 코드와는 상관없는 파일입니다. 디렉토리에서 그냥 보여질 뿐이고 시스템의 숨겨진 파일입니다. 그래서 그런 파일들을 깃으로 추적하는 것을 원치 않습니다. 윈도우에도 다른 이름으로 비슷한 파일들이 있습니다. 제외하고 싶은 또다른 것은 로그 파일과 응용프로그램의 산출물로 그런 것들은 다시 쉽게 만들어질 수 있기 때문입니다.

그래서 응용프로그램을 실행하면, 매번 리포트를 생성하고 요청하면 리포트를 다시 생성합니다. 리포트를 다시 생성할 수 있기 때문에 추적할 필요도 없고 저장할 필요도 없습니다. 마지막으로 아주 흔한 시나리오는 디펜던시나 패키지입니다. node나 파이썬 또는 어떤 랭귀지 프로그램으로 작업해본 적이 있고 다운로드하고 설치한 수많은 디펜던시와 작업해 봤다면, 그런 것들은 깃으로 추적할 필요가 없습니다.

그것은 수백 혹은 수천의 다양한 폴더와 파일일 수도 있고, 어느 시점에서 쉽게 그것들을 가져올 수 있습니다. 그 디펜던시 자체를 추적하느라 애쓸 필요가 없습니다. 이 매커니즘은 아주 특별한 이름을 가진 파일을 통해 이루어집니다. 생성한 숨겨진 파일은 .gitignore 입니다. 그리고 이 파일을 저장소의 아무 곳에 넣는데, 보통은 저장소의 최상위 루트에 넣습니다. 꼭 거기에 있을 필요는 없고 그 이름으로 파일을 만듭니다. 그리고 그 안에서 깃에게 어떤 것을 제외할지 지시할 수 있기 때문에 정확한 파일 이름을 넣을 수 있습니다. 

여기 첫 번째로 깃은 이 이름을 가진 파일을 제외시킵니다. 폴더 이름도 제외할 수 있는데, 폴더 이름 뒤에 슬래시를 붙이면 전체 디렉토리를 제외시킵니다. 그리고 *.log는 확장자로 .log를 갖는 모든 파일들을 제외합니다. 여기서 *는 슬래시를 빼고는 어떤 것과도 매치되는 와일드 카드입니다. 그래서 확장자 .log가 뒤에 오는 어떤 문자와도 매치됩니다. 그래서 이것을 통해 깃이 모든 로그파일을 제외시킬 수 있도록 합니다. 쓰고 싶지도 않고 이름이 무엇인지 알지도 못하지만 .log 확장자를 갖는 것들은 제외합니다. 

아직 깃허브를 살펴보지 않았지만, 여기 깃허브에 프로젝트들이 있습니다. 거의 모든 프로젝트들이 .gitignore입니다. 슬래시가 없으면 파일이고 슬래시가 끝에 있으면 디렉토리를 의미합니다. 이제 원한다면 git add . 명령을 사용해서 커밋할 수 있습니다. 그리고 이 경우에 커밋 메시지도 만들 수 있습니다. 깃은 이 파일을 완전히 제외하고 있습니다. gitignore에 작성할 것들이 아주 많습니다. 특히 복잡한 프로젝트에는 더 그렇습니다. 여기에 모든 종류의 것들을 넣을 수 있습니다.

 

 

깃허브 추천 예시

gitignore.io를 추천하고 있습니다, 여기서 작업하고 있는 것을 구체적으로 명시할 수 있습니다. 예를 들어 파이썬 앱에서 작업하고 있다면 이것은 gitignore에 대한 권장되는 출발점입니다. 이런 패턴 또는 확장자를 가진 파일이나 디렉토리 이름들을 갖지 않을 수도 있지만, 그냥 포함해도 될 정도로 아주 흔한 것들이고 응용프로그램에 많은 부담을 주는 것은 절대 아닙니다. 자바스크립트에 대한 비슷한 gitignore 템플릿도 있습니다. 아주 많은 것들이 있고, 작성할 수 있는 패턴은 깃 문서에 가서 정보들을 읽어볼 수 있습니다.

아직 살펴보지 않은 많은 것들이 있습니다. 예를 들면 별표 2개**는 별표 1개*와 다른 것이고 물음표는 글자 하나를 매치시키는 방법입니다. 만약  정규 표현식 표기법에 익숙하다면 쉽게 이해할 수 있습니다. 하지만 대부분의 경우에 와일드 카드를 사용해서 파일 이름, 디렉토리 그리고 파일 확장자를 제외시킬 수 있으면 충분합니다.

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

 

gitignore.io

Create useful .gitignore files for your project

www.toptal.com

반응형