.gitignore 모든 폴더와 하위 폴더에있는 모든 .DS_Store 파일
.gitignore 파일에 .DS_Store를 추가했지만 모든 폴더 및 하위 폴더가 아닌 루트 디렉토리의 .DS_Store 만 무시하는 것으로 보입니다.
이 문제를 어떻게 해결합니까?
문제는 이전 커밋에서 실수로 .DS_Store 파일을 리포지토리에 추가 한 것입니다. 물론 파일이 리포지토리에서 추적되면 적용 가능한 .gitignore 파일의 항목과 일치하더라도 계속 추적됩니다.
리포지토리에 추가 된 .DS_Store 파일을 수동으로 제거해야합니다. 사용할 수 있습니다 git rm --cached .DS_Store
. 일단 제거되면 git은 무시해야합니다. 루트 .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에. 이것은 나를 위해 일했다!
--cached
Edward Newell이 원래 답변에서 언급했듯이 auco의 답변에 플래그를 추가하여 로컬 .DS_store 파일을 유지할 수도 있습니다. 수정 된 명령은 다음과 같습니다. find . -name .DS_Store -print0 | xargs -0 git rm --cached --ignore-unmatch
.. cheers and thanks!
*.DS_Store
.gitignore 파일에 추가 하십시오. 그것은 나를 위해 완벽하게 작동합니다
1 단계 :이 명령을 사용하여 기존 파일 제거
찾기 . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch
2 단계 : .gitignore 파일에 .DS_Store 추가
단계 : 3) .gitignore git add .gitignore git commit -m "removed .DS_Store"에서 변경 사항을 커밋하십시오.
$ git rm ./*.DS_Store
-자식에서 모든 .DS_Store를 제거하십시오.$ echo \.DS_Store >> .gitignore
-향후 .DS_Store 무시
커밋 & 푸시
'Programming' 카테고리의 다른 글
git가 추적중인 파일 목록을 표시하도록하려면 어떻게해야합니까? (0) | 2020.02.13 |
---|---|
JIT (Just-In-Time) 컴파일러의 기능은 무엇입니까? (0) | 2020.02.13 |
메소드의 실행 시간 계산 (0) | 2020.02.13 |
순수 JS 또는 jQuery로 이스케이프 키 누르기를 감지하는 방법은 무엇입니까? (0) | 2020.02.13 |
jQuery에서 여러 CSS 속성을 정의하는 방법은 무엇입니까? (0) | 2020.02.13 |