Mac OS 환경에서 git을 사용하다보면 GitHub Repository에 의도치 않게 .DS_Store라는 파일이 올라가곤 한다.
별 생각없이 단일 branch로 관리하면 큰 문제는 없는데 여러 branch로 코드를 작업하다보면 문제가 생길 때가 많다.
이 파일이 도대체 뭔지 궁금해서 찾아봤고 Repository에 올라가지 않도록 설정해보자.
Desktop Service Store의 약자로, Apple에서 정의한 파일 포맷이라고 한다.
Apple의 Mac OS X 시스템이 폴더에 접근할 때 생기며, 해당 폴더에 대한 메타 데이터를 저장하는 파일이다.
즉, mac의 finder로 폴더에 접근하면 자동으로 생기는 파일인데, 여기서 메타 데이터는 해당 디렉토리의 특성, 구조 등에 관한 내용을 말한다.
.DS_Store 파일은 프로젝트와 무관한 파일로, 윈도우의 thumb.db 파일과 비슷하다고 볼 수 있다.
Mac에서 생성되지만, 파일을 공유하는 과정에서 종종 공유되기도 한다.
// 더 자세한 사항은 다음 링크를 참고하자.
Mac OS를 사용하다보면 .DS_Store
가 자동으로 생성되어 계속 GitHub Repository에 업로드되는데, 이것은 수시로 수정될 수 있으므로 GitHub에서 conflict를 발생시킬 수 있으니 .gitignore로 미포함 설정을 걸어 작업을 하면 된다.
이 후 해당 GitHub Repository에 가보면 .gitignore 파일이 올라오며 .DS_Store가 모두 사라졌음을 확인할 수 있다.
이게 별 생각 안하면 중요하지도 않고 별 문제 없어 보이지만 최근에 그동안 미뤘던 간단한 토이프로젝트를 하다 한 Repository 상에서 frontend와 backend를 분리하여 작업하다 이 파일 하나 때문에 branch간의 내용이 안맞아서 뻘짓했던 기억이 있어 작성했다.
Repository에 올릴 필요 없는 패키지나 파일들도 .gitignore로 관리하도록 하자.