GitHub Repository에 .DS_Store 파일 없애기

라모스·2022년 1월 11일
0

삽질.log

목록 보기
4/12
post-thumbnail

Mac OS 환경에서 git을 사용하다보면 GitHub Repository에 의도치 않게 .DS_Store라는 파일이 올라가곤 한다.

별 생각없이 단일 branch로 관리하면 큰 문제는 없는데 여러 branch로 코드를 작업하다보면 문제가 생길 때가 많다.

이 파일이 도대체 뭔지 궁금해서 찾아봤고 Repository에 올라가지 않도록 설정해보자.

.DS_Store?

Desktop Service Store의 약자로, Apple에서 정의한 파일 포맷이라고 한다.

Apple의 Mac OS X 시스템이 폴더에 접근할 때 생기며, 해당 폴더에 대한 메타 데이터를 저장하는 파일이다.
즉, mac의 finder로 폴더에 접근하면 자동으로 생기는 파일인데, 여기서 메타 데이터는 해당 디렉토리의 특성, 구조 등에 관한 내용을 말한다.

.DS_Store 파일은 프로젝트와 무관한 파일로, 윈도우의 thumb.db 파일과 비슷하다고 볼 수 있다.
Mac에서 생성되지만, 파일을 공유하는 과정에서 종종 공유되기도 한다.

// 더 자세한 사항은 다음 링크를 참고하자.

Mac OS를 사용하다보면 .DS_Store가 자동으로 생성되어 계속 GitHub Repository에 업로드되는데, 이것은 수시로 수정될 수 있으므로 GitHub에서 conflict를 발생시킬 수 있으니 .gitignore로 미포함 설정을 걸어 작업을 하면 된다.

.gitignore로 .DS_Store 없애기

  1. 로컬 환경 Terminal에서 해당 Repository 폴더로 이동한다.
  2. find . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch -f 입력
    // 해당 폴더 안의 모든 .DS_Store 파일이 삭제 되었다. .gitignore에 추가하여 다시 commit이 되지 않도록 하자.
  3. echo .DS_Store >> .gitignore
    // echo로 파일을 만들고, .DS_Store 라고 적힌 라인을 추가해도 됩니다.
    // 이미 .gitignore 파일이 있다면, .DS_Store라고 적어주면 됩니다.
  4. git add .gitignore
  5. git commit -m ".DS_Store is banished"
  6. push origin 해서 반영한다.

이 후 해당 GitHub Repository에 가보면 .gitignore 파일이 올라오며 .DS_Store가 모두 사라졌음을 확인할 수 있다.

이게 별 생각 안하면 중요하지도 않고 별 문제 없어 보이지만 최근에 그동안 미뤘던 간단한 토이프로젝트를 하다 한 Repository 상에서 frontend와 backend를 분리하여 작업하다 이 파일 하나 때문에 branch간의 내용이 안맞아서 뻘짓했던 기억이 있어 작성했다.

Repository에 올릴 필요 없는 패키지나 파일들도 .gitignore로 관리하도록 하자.

profile
Step by step goes a long way.

0개의 댓글