DEV_Larva
.DS_Store...? 본문
가끔 Github에 푸시하고 그럴 때마다 가끔 보이는 친구 .DS_Store(줄여서 DS라고 합시다.)이라는 친구가 스리슬쩍 자리를 차지하고 있는 것을 발견했다. 이전에는 그냥 무심코 넘어갔는데.. 팀 프로젝트를 진행하다 보니 이 친구가 거슬려 괜히 눈치가 보이곤 했다. 뭐 대부분은 알고 있을 수 있다. gitignore에 넣어버리면 쉽게 끝날 일이지만, 내가 궁금한 건 그게 아니었다.. 한번 천천히 이야기를 해보면서 이 DS 친구에 대해서 알아보는 시간을 가지자~
1. DS_Store가 뭔가요?
.DS_Store는 디렉터리 설정 파일로, 맥(Mac) OS X와 macOS에서 사용되는 파일입니다. 그것은 디렉터리별로 시스템에 필요한 맞춤 정보를 저장하는 데 사용됩니다. 이 파일은 사용자가 인식하기 어려운 숨겨진 파일로, 폴더 열기 및 닫기, 아이콘 위치, 창 크기 등의 폴더 속성 정보를 포함합니다. 일반적으로 사용자에게 볼 필요가 없으며, 파일 관리자에서 숨겨진 것으로 나타납니다.
2. 삭제를 꼭 해야 하나요?
일단 결론부터 말하자면 DS_Store 파일은 컴퓨터 사용자에게 직접적인 영향은 거의 없습니다. 하지만 이런 파일들이 누적되면 다음과 같은 불편함이? 발생할 수 있습니다.
- 파일 관리의 어려움: 많은 파일들이 누적되면 파일 관리에 어려움을 겪을 수 있습니다.
- 폴더 설정 오류: 변경된 경우에도 이전 설정이 계속 적용되는 경우가 있을 수 있습니다.
- 저장 공간 낭비: 파일 자체의 용량은 적지만, 수많은 DS_Store 파일들이 모이면 하나로 몰아서 지우는 것도 좋다
하지만 본인이 불편함이 없다면 무시해도 좋다고 하니 상관없을 것 같다.
3. 삭제 방법?
삭제 방법은 경우에 따라 다른데 크게 2가지로 나눌 수 있을 것 같다.
- 깃허브에 푸시하기 전에 미리 삭제하기
- 이미 푸시되어 있다면 해당 로컬 디렉터리 접근 해서 삭제하고 다시 푸시
1. 깃허브에 푸시하기 전에 미리 삭제하기
터미널을 이용해서 삭제하고자 하는 디렉터리로 접근한 후에 아래 명령어를 기입해보자.
find . -name ".DS_Store" -delete
그럼 해당 디렉터리 내부에 있는 DS 씨는 사라지게 된다.
2. 이미 푸시되어 있는 파일에 대한 DS 삭제하기
이것도 터미널에서 쉽게 사용할 수 있는데 1번 방법과 동일하게 해당 디렉터리로 접근을 하여 아래 명령어를 기입하자.
find . -name ".DS_Store" -exec git rm -f --ignore-unmatch {} +
여기서 나는 여러 블로그나 DS 씨에 대해서 조사를 해보니 사람들마다 쓰는 명령어가 다르던데 이 두 개가 어떻게 다른지 한번 찾아보았다.
먼저 첫 번째에 우리가 사용했던 명령어였던
find . -name ".DS_Store" -delete
경우에는 로컬 시스템에 있는 모든 DS 씨를 찾아서 삭제한다. 근데 중요한 건 이건 단지 로컬 시스템 내부에서만 해당 파일을 제거하는 명령어라고 한다.
두 번째로 사용한 더 길었던 명령어
find . -name ".DS_Store" -exec git rm -f --ignore-unmatch {} +
경우는 깃 래포지토지 내의 DS 씨 파일을 제거하기 위해 사용되면서 --ignore-unmatch 옵션을 사용해 깃 추적에 포함되지 않은 경우에도 오류 없이 진행이 가능하다고 한다.
한마디로 말하면 첫 번째 두 번째 모두 내가 찾고 있던 DS 씨를 없애는 것이 맞다. 근데 중요한 건 로컬에서만 영향이 있느냐 원격 저장소에서도 영향을 미치느냐에 차이인 것 같은데.. 결국은 난 gitignore를 사용하면 크게 머리 아플 일 없을 것 같아서 마지막으로 gitignore에 DS 씨를 삽입하는 방법을 추가해보았다.
- 저장소 상위 디렉토리에 .gitignore 파일 생성 + DS 씨 추가
echo .DS_Store >> .gitignore
단순히 두 명령어의 차이점에서 시작된 궁금증이 이렇게 마무리가 되었다. gitignore가 있지만, 혹시나 .DS_Store가 궁금했었던 사람들에게는 도움이 될 수 도있겠다는 생각에 써본 글이었습니다~
'잡동사니 > Git&Github' 카테고리의 다른 글
Git GUI - GitKraken (0) | 2023.01.08 |
---|---|
Git Push 취소 (0) | 2022.11.12 |
Github 공유 실습 (0) | 2022.09.22 |
Git 공유 (0) | 2022.09.19 |
Git 설치 (0) | 2022.09.18 |