Chomu's Blog.

>

Posts

GitHub

gitignore 손쉽게 만들기

.gitignore 는 git 저장소에 올리지 않을 파일을 지정하기 위한 파일이다. 중요한 파일이지만 솔직히 매번 일일히 작성하기 귀찮다. 이를 쉽게 설정하는 방법을 알아보자.

목차

gitignore.io

gitignore.io.gitignore 파일을 손쉽게 만들어주는 웹사이트이다. 들어가면 검색창이 뜨고, 해당 검색창에 사용하는 환경, 언어나 프레임워크를 입력하면 그에 맞춰 .gitignore 파일의 내용을 작성해준다. 나오는 내용을 긁어서 .gitignore 파일에 붙여넣기만 하면 된다.

API로 CLI 만들기

하지만 그마저도 귀찮을 때가 있다. 이를 위해 gitignore.io 에서 제공하는 CLI API를 사용하면 더욱 쉽게 만들 수 있다. API 문서에 여러 환경과 쉘에 맞는 사용법이 나와있다. 하지만 어차피 git 과 함께 사용할 것이니 맨 위에 git 을 이용한 방법을 사용하자. 터미널에 다음과 같이 입력하면 된다.

git config --global alias.ignore \
'!gi() { curl -sL https://www.toptal.com/developers/gitignore/api/$@ ;}; gi'

이제 git ignore < 환경, 언어, 프레임워크 등 템플릿 이름 > 명령어를 통해 .gitignore 에 작성할 내용을 쉽게 만들 수 있다.

git ignore macos,python > .gitignore

나는 조금 더 커스텀해서 다음과 같이 사용하고 있다.

git config --global alias.ignore \
'!gi() {
  EXPLAIN="Usage: gi [-l | -s | -h | -n | -a] [args]\n  -l: list all available gitignore templates\n  -s: search for a specific gitignore template\n  -n: get .gitignore content but do not write to file\n  -h: display this help message\n  -a: append to .gitignore file"; \
  API="https://www.toptal.com/developers/gitignore/api"; \
  if [ $# -eq 0 ]; then echo -e "$EXPLAIN"; fi; OLD_IFS=$IFS; IFS="," ;\
  case "$1" in -h) echo -e "$EXPLAIN";; -l) curl -sL $API/list;; -s) curl -sL $API/list | tr "," "\n" | grep -i "$2";; -n) curl -sL $API/"${*:2}";; -a) curl -sL $API/"${*:2}" >> .gitignore;; *) curl -sL $API/"$*" > .gitignore;; esac;
  IFS=$OLD_IFS; }; \
gi'

사용 예시

예를 들어 맥에서 Node로 작업하고 있다고 가정하고 git ignore mac node 명령어를 입력해보자. Node 관련 템플릿은 잘 생성되지만 맥 관련 템플릿은 생성되지 않고 #!! ERROR: mac is undefined. Use list command to see defined gitignore types !!# 라는 문구만 나타날 것이다. 여기서 git ignore -s mac 명령어를 입력하면 emacs, macos 2개의 템플릿이 나타난다. 이 중 우리는 MacOS 관련 템플릿을 사용할 것이므로 git ignore -a macos 명령어를 입력해 맥 관련 템플릿을 추가해주자. 혹은 아예 git ignore macos,node 명령어를 입력해서 깔끔하게 덮어쓰기를 해도 된다.