.DS_Store를 global 설정으로 gitignore하기.

kshired·2021년 11월 27일
2

🤔 Intro

맥에서 git을 사용하다보면 어느새인가 나도모르게 .DS_Store라는 파일이 commit후 push된 경우가 있을 것입니다.

이 파일이 remote repository에 올라가 있다면, git rm -r --cached .DS_Store 와 같은 명령어를 통해 지우고 .gitignore에 추가해야하는 등.. 너무 귀찮은일이 발생합니다.

물론 평소에 까먹지않고, .gitignore에 추가해주면 모르겠지만 항상 까먹는터라..

이번에 stackoverflow에서 global 설정으로 .DS_Store에 제거할 수 있는 명령어를 찾게 되어 공유하기 위해 글을 적어놓습니다.

🧐 근데, .DS_Store가 뭔데요?

.DS_Store는 일종의 인덱스 같은것으로 맥에서 디렉토리의 구조와 아이콘등을 저장해두어 빠르게 검색을 할 수 있도록 도와주는 녀석이라고합니다.

검색할때는 도움이 되겠지만, 이게 git을 사용할 때 맨날 자기 멋대로 올라가있는 경우가 있어서 이게 참 마음에 안듭니다.

찾아보니 아예 폴더를 생성 할 때 .DS_Store를 생성하지 않도록 하는 옵션도 있던데.. 그렇다고 인덱싱하는 친구를 마음대로 없애서 검색할 때 느려지면 그것도 참 마음이 아플 것 같습니다.

🙅‍♂️ .gitignore global 설정하기

하지만, 우리는 언제나 답을 찾습니다. 늘 그랬듯이 말이죠.

이걸 해결하기위해 개발자의 지식인인 스택오버플로우를 검색하던 도중, gitignore global 설정을 통해 .DS_Store를 항상 포함하지 않도록 할 수 있다는걸 알게 되었습니다.

그 방법은 아래와 같습니다.

  1. .gitignore_global 파일 생성 및 .DS_Store 추가
echo .DS_Store >> ~/.gitignore_global
  1. 모든 repository에게 이걸 global하게 exclude하라고 알려주기.
git config --global core.excludesfile ~/.gitignore_global

위의 간단한 2단계를 거쳐 설정만 해주면, global setting이 완료되며 이후 .DS_Store가 모든 레포지토리에서 ignore 될 것 입니다!

꽤나 간단한 방법인데, 평소에 서칭 할 생각을 안해서 그런지.. 이제야 알게 되었습니다.

🤦‍♂️ 저의 귀차니즘에 유감을 표합니다.

👍 마치면서

언제나 궁금하고 필요한 개발지식은 stackoverflow에 존재하는 것 같습니다. ( 거의 대부분 )

그러니, 항상 궁금해하고 검색을 먼저 해보는 습관을 들이는게 어떨까 다시 한 번 깨닫는 날입니다.

Reference

https://stackoverflow.com/questions/18393498/gitignore-all-the-ds-store-files-in-every-folder-and-subfolder

profile
글 쓰는 개발자

1개의 댓글

comment-user-thumbnail
2022년 2월 6일

유용한 팁 감사합니다!

답글 달기