.gitignore 파일에 .DS_Store를 추가했지만 모든 폴더와 하위 폴더가 아닌 루트 디렉토리의 .DS_Store 만 무시하는 것 같습니다.
이 문제를 어떻게 해결합니까?
답변
문제는 이전 커밋에서 실수로 .DS_Store 파일을 리포지토리에 추가 한 것입니다. 물론 파일이 리포지토리에서 추적되면 적용 가능한 .gitignore 파일의 항목과 일치하더라도 계속 추적됩니다.
리포지토리에 추가 된 .DS_Store 파일을 수동으로 제거해야합니다. 사용할 수 있습니다 git rm --cached .DS_Store
. 제거되면, 자식은 그것을 무시한다. 루트 .gitignore 파일에는 다음 줄만 있으면됩니다 .DS_Store
. 기간을 잊지 마세요!
git rm --cached .DS_Store
만 제거 .DS_Store
현재 디렉토리에서. 저장소에서 find . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch
모두 제거 하는 데 사용할 수 있습니다 .DS_Stores
.
팁 펠트 : 당신은 아마 된 .DS_Store 파일을 포함하고 싶지는 않을 때문에, 전역 규칙을합니다. 먼저 전역 .gitignore 파일을 어딘가에 만드십시오 (예 🙂 echo .DS_Store >> ~/.gitignore_global
. 이제 git에게 모든 저장소에 사용하도록 지시하십시오 git config --global core.excludesfile ~/.gitignore_global
.
이 페이지는 귀하의 질문에 답변하는 데 도움이되었습니다 : https://help.github.com/articles/ignoring-files
답변
추가 **/.DS_Store
로 .gitignore
하위 디렉토리를
.DS_Store
이미 커밋 한 경우 :
find . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch
모든 저장소에 무시하려면 (때로는 이름 ._.DS_Store
)
echo ".DS_Store" >> ~/.gitignore_global
echo "._.DS_Store" >> ~/.gitignore_global
echo "**/.DS_Store" >> ~/.gitignore_global
echo "**/._.DS_Store" >> ~/.gitignore_global
git config --global core.excludesfile ~/.gitignore_global
답변
.DS_Store가 git 저장소에 추가되지 않은 경우 간단히 .gitignore 파일에 추가하십시오.
없는 경우라는 파일을 만듭니다.
.gitignore
앱의 루트 디렉토리에서 간단히 작성하십시오.
**/.DS_Store
그 안에. 이렇게하면 .DS_Store 파일이 git에 몰래 들어 가지 않습니다.
그러나 이미 있다면 터미널에 작성하십시오.
find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch
그런 다음 변경 사항을 커밋하고 푸시하여 원격 저장소에서 .DS_Store를 제거하십시오.
git commit -m "Remove .DS_Store from everywhere"
git push origin master
이제 .DS_Store를 .gitignore 파일에 추가 한 다음 두 개의 마지막 코드 조각 (git commit …, git push …)으로 다시 커밋하고 푸시하십시오.
답변
귀하의 .gitignore의 파일은 다음과 같아야합니다 :
# Ignore Mac DS_Store files
.DS_Store
슬래시를 포함하지 않는 한 모든 디렉토리의 파일 이름과 일치합니다. ( 여기에서 )
답변
1 단계, 모든 *.DS_store
파일을 삭제 하십시오. 하나는 실행할 수 있습니다
git rm -f *.DS_Store
그러나 rm -f
오타가 있으면 조금 위험 할 수 있습니다! 2 단계 : 추가
*.DS_Store
.DS_Store
.gitignore에. 이것은 나를 위해 일했다!
답변
*.DS_Store
.gitignore 파일에 추가 하십시오. 그것은 나를 위해 완벽하게 작동합니다
답변
--cached
Edward Newell이 원래 답변에서 언급했듯이 auco의 답변에 플래그를 추가하여 로컬 .DS_store 파일을 유지할 수도 있습니다. 수정 된 명령은 다음과 같습니다. find . -name .DS_Store -print0 | xargs -0 git rm --cached --ignore-unmatch
.. cheers and thanks!
