
mac에서 Visual Studio code 상의 git을 사용하다가 source control 탭을 보면 위의 이미지와 같이 Changes에 .DS_Store이라는 것이 뜬다.
이는 macOS에서 자동으로 생성되는 숨김 파일로, 디렉토리 설정 (ex) 아이콘 위치, 창 크기 등) 을 저장하는 데 사용된다. git은 기본적으로 모든 파일의 변화를 추적하기 때문에, 디렉토리 설정이 변경되는 것 또한 추적되어서 Changes에 .DS_Store이 뜨게 된다.
만약 이 .DS_Store이 commit, push 되어버리면 원격 저장소에 불필요한 파일이 저장되므로 별도로 처리를 하는 것이 좋다. 이 문제를 해결하기 위해서는, 작업 폴더의 .gitignore 파일에 .DS_Store를 추가하면 된다. .gitignore은 숨겨진 파일이므로 GUI에서는 보이지 않고, vi 편집기 등을 이용해 .gitignore 파일을 수정하면 된다.
그러나 여기서 끝이 아니다. source control 탭을 확인하면 Changes에 이제는 .DS_Store이 아니라 .gitignore가 있을 것이다. 이 .gitignore를 commit & push 까지 하면 더 이상 문제가 발생하지 않는다.
그러나! 이는 해당 저장소에서만 .DS_Store를 처리한 것이라, 다른 git 작업 폴더가 생기면 또 같은 문제가 발생하게 된다. 이를 전역적으로 해결하기 위해서
echo ".DS_Store" >> ~/.gitignore_global git config --global core.excludesfile ~/.gitignore_global
를 하면 매번 프로젝트마다 .DS_Store 문제를 해결하지 않아도 된다.