깃허브에서 기존 레포지토리를 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
'💡 > 오류노트' 카테고리의 다른 글
[AWS] 클라우드 서버 DB 연결 에러 해결 (0) | 2024.06.29 |
---|---|
[Eclipse] 이클립스 실행 오류 '응용 프로그램을 열 수 없습니다.' 해결 (0) | 2024.05.04 |
[VSCode] Prettier HTML 태그 깔끔하게 정렬하기 (0) | 2024.04.18 |
[GitHub] 잔디 누락 문제 해결 방법 (0) | 2024.01.30 |
[VSCode] 터미널에서 code . 명령어 안될 때 해결 방법(+VSCode 켜지지 않을 때) (0) | 2024.01.17 |