본문 바로가기
개발공부일지/etc

IT정보 - macOS 내의 DS_Store 에 대하여

by Hynn1429 2022. 11. 24.
반응형

안녕하세요.

Hynn 입니다.

 

다른 포스팅에서 Git 을 보고 오신분들 중, 일부 macOS 사용자분들은 "DS Store"때문에 Git Status 에서 지속적으로 "DS_Store" 로 인해 상태가 초록색으로 변경되지 않은 사용자분들이 있으실 것이라고 생각합니다.

이번 포스팅에서는 주제와 별개로, DS Store 파일에 대해서만 포스팅 하려고 합니다.

간단한 내용이지만, 실제 도움이 되는 내용위주로만 작성했습니다.

 

========

1. DS Store 란?

2. DS Store 제외하기

========

 

1. DS Store 란?

DS Store 파일은, 일반적으로 시스템 단위에서 생성되는 파일이고, 이는 macOS 에만 존재하는 파일입니다.

유사한 파일로는 Windows 상에서 thumb.db 파일이 존재하기는 하지만, 근본적으로 이 DS Store 는 Mac OS X 시스템 시절부터, Finder 가 폴더에 접근할 때 자동으로 생성됩니다.

이 파일은 몇가지 정보를 담고 있습니다. 일반 사용자들에게 유용하다고 하기에는 개인의 사용용도에 따라 다를 수 있습니다.

세가지 특성에 대해서 정리하면 다음과 같습니다.

 

특징 설명
Spotlight Comment  macOS 에서 파일에 설정된 Tag 를 이용해 Spotlight 에서 빠르게 검색을 도와주는 정보를 내장하고 있습니다. 파일 구조체에서 cmmt 영역에 위치하고 있습니다.
Time-Stampe for File 파일의 수정시간에 관련된 정보를 가지고 있습니다. 
Inforation for Directory  현재 위치한 디렉토리의 논리적,물리적 크기의 대한 정보입니다. 

 

이를 굳이 우리가 인지하고, 알게 된 경위는, 바로 Git 을 사용햇을때, 이 파일은 즉각적으로 파일의 변화사항에 대응되기 때문에,

git 에서는 파일이 지속적으로 변하는 것으로 인지하여, Working Directory 와 Repository 의 데이터가 불일치 함을 표시하기 때문입니다.

 

2. DS Store 제외하기

이를 해결하기 위해서는 두가지의 방법이 존재합니다.

첫번째로, 이전 포스팅에서 언급했던 ".gitignore" 에서 제외하는 방법과, Terminal 을 사용하여, DS_Store 가 생성되지 않도록 명령을 작성하는 방법입니다.

각자의 상황에 맞는 방법을 적용해야 하며, 그를 위해서 방법을 나누어 설명드리도록 하겠습니다.

 

2-1 DS_Store 를 "Ignore" 설정하기

먼저 이미 생성되신 분들은 아래의 명령어를 터미널이 작성하여, 파일을 삭제합니다.

아래의 명령어를 사용하여 현재의 Directory 및 하위 Directory 에서 제거합니다. 

find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch

그리고 이후에도 추가가 되지 않도록, ignore 목록에 이를 작성해야 합니다.

환경변수를 사용하여, .gitignore 및 DS_Store 를 추가합니다.

echo .DS_Store >> .gitignore

이제 이 변경사항을 Git 에서 반영해야 합니다.

아래의 명령어를 순서대로 작성해보도록 하죠.

git add .
git commit -m "DS Store 삭제"
git push origin main

 

혹은, 생성 자체를 제할 수도 있습니다.

 

2-2 DS_Store 가 생성되지 않게 설정하기.

터미널을 실행하여 아래의 명령어를 입력합니다.

defaults write com.apple.desktopservices DSDontWriteNetworkStores ture

위 명령어로는 기존의 파일까지 모두 삭제되는 것은 아니므로, 파일이 있는지 꼭 명령어 사용을 통해 확인하도록 합시다.

git status
ls -al

어려운 방법이 아니라 간단한 방법이지만, 모르면 당황할 수 있는 정보일 수 있습니다.

간단하게 찾아서 원인을 파악하시어 도움이 되었길 바랍니다.

 

감사합니다.

반응형

'개발공부일지 > etc' 카테고리의 다른 글

Browser Rendering Step  (0) 2023.08.10

댓글