본문 바로가기

💡/오류노트

[GitHub] .DS_Store 파일 무시 및 삭제 방법

깃허브에서 기존 레포지토리를 clone 받아 새 레포지토리에 push하니 .DS_Store 파일이 생성되었다.

.DS_Store 파일은 무엇이며 터미널로 해당 파일을 무시 또는 삭제하는 방법을 알아보자

 

 

.DS_Store 파일이란?

macOS 운영 체제에서 사용되는 숨김 파일로, 폴더 내의 디렉토리 및 파일의 배치와 관련된 정보를 저장한다.

  • 아이콘 위치 : 아이콘의 위치와 크기 정보를 저장
  • 보기 설정 : 폴더의 보기 설정과 관련된 정보를 저장
  • 사용자 지정 설정 : 색상 라벨, 사이즈 및 위치 등을 저장
  • 파일 및 폴더의 속성 : 읽기 전용, 숨김 등 속성 정보를 저장

사용자가 .DS_Store 파일을 직접 다루진 않고 파일 관리 작업(폴더를 열거나, 보기 설정 및 위치를 변경)을 수행할 때 자동으로 생성된다.

.DS_Store 파일은 시스템마다 다르게 생성되며 디렉토리 구조나 파일 속성에 대한 정보만을 담고 있고 프로젝트 파일이나 소스 코드와 관련된 중요한 정보를 담고 있진 않기 때문에 Git과 같은 버전 관리 시스템에서는 이 파일을 포함할 필요가 없다.

 

 

 

 

 

.DS_Store 무시

commit 하는 과정에서 아래와 같은 오류를 마주했다.

 

On branch main
Untracked files:
    (use "git add <file>..." to include in what will be committed)
             Programers/.DS_Store
nothing added to commit but untracked files present (use "git add" to track)

 

이 오류는 .DS_Store와 같은 untracked 파일이 있어서 커밋을 할 수 없다는 뜻이다.

.DS_Store 파일을 Git으로 추적하지 않도록 설정하자.

 

 

1. .DS_Store 파일을 무시하도록 .gitignore 파일에 추가한다.

echo .DS_Store >> .gitignore

 

 

2. .DS_Store 파일을 스테이징 영역에 추가하고 커밋한다.

git add .gitignore
git commit -m "docs: Add .gitignore to ignore .DS_Store files"

 

 

3. 변경된 내용을 다시 커밋한다.

git add .
git commit -m "Commit message"

 

 

4. 원격 저장소에 push 하면 gitignore 파일에 .DS_Store이 추가된다.

 

 

 

 

 

.DS_Store 삭제

1. 현재 및 하위 디렉토리에 '.DS_Store' 파일을 모두 찾아 Git에서 삭제한다.

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

 

 

2. 앞으로도 .DS_Store 파일을 Git에 업로드하지 않으려면 .gitignore 파일에 .DS_Store를 추가하여 Git이 해당 파일을 무시하도록 설정한다.

echo .DS_Store >> .gitignore

 

 

3. 로컬 브랜치의 변경 사항을 원격 저장소(origin)의 main 브랜치로 푸시한다.

git add --all
git commit -m "docs: .DS_Store removed"
git push origin main

 

 

정상적으로 push됨을 확인할 수 있다.

 

 

레포지토리에 있던 .DS_Store 파일이 삭제되었다.

 

 

 

 

 

참고 https://wooono.tistory.com/251