맥에서 git을 사용하다보면 어느새인가 나도모르게 .DS_Store
라는 파일이 commit후 push된 경우가 있을 것입니다.
이 파일이 remote repository에 올라가 있다면, git rm -r --cached .DS_Store
와 같은 명령어를 통해 지우고 .gitignore에 추가해야하는 등.. 너무 귀찮은일이 발생합니다.
물론 평소에 까먹지않고, .gitignore
에 추가해주면 모르겠지만 항상 까먹는터라..
이번에 stackoverflow에서 global 설정으로 .DS_Store에 제거할 수 있는 명령어를 찾게 되어 공유하기 위해 글을 적어놓습니다.
.DS_Store는 일종의 인덱스 같은것으로 맥에서 디렉토리의 구조와 아이콘등을 저장해두어 빠르게 검색을 할 수 있도록 도와주는 녀석이라고합니다.
검색할때는 도움이 되겠지만, 이게 git을 사용할 때 맨날 자기 멋대로 올라가있는 경우가 있어서 이게 참 마음에 안듭니다.
찾아보니 아예 폴더를 생성 할 때 .DS_Store
를 생성하지 않도록 하는 옵션도 있던데.. 그렇다고 인덱싱하는 친구를 마음대로 없애서 검색할 때 느려지면 그것도 참 마음이 아플 것 같습니다.
하지만, 우리는 언제나 답을 찾습니다. 늘 그랬듯이 말이죠.
이걸 해결하기위해 개발자의 지식인인 스택오버플로우를 검색하던 도중, gitignore global 설정을 통해 .DS_Store
를 항상 포함하지 않도록 할 수 있다는걸 알게 되었습니다.
그 방법은 아래와 같습니다.
.gitignore_global
파일 생성 및 .DS_Store
추가echo .DS_Store >> ~/.gitignore_global
git config --global core.excludesfile ~/.gitignore_global
위의 간단한 2단계를 거쳐 설정만 해주면, global setting이 완료되며 이후 .DS_Store가 모든 레포지토리에서 ignore 될 것 입니다!
꽤나 간단한 방법인데, 평소에 서칭 할 생각을 안해서 그런지.. 이제야 알게 되었습니다.
🤦♂️ 저의 귀차니즘에 유감을 표합니다.
언제나 궁금하고 필요한 개발지식은 stackoverflow에 존재하는 것 같습니다. ( 거의 대부분 )
그러니, 항상 궁금해하고 검색을 먼저 해보는 습관을 들이는게 어떨까 다시 한 번 깨닫는 날입니다.
유용한 팁 감사합니다!