Git 리포지토리에서 .DS_Store 파일을 제거하려면 어떻게 해야 합니까?

StackOverflow https://stackoverflow.com/questions/107701

  •  01-07-2019
  •  | 
  •  

문제

짜증나는 Mac OS X를 어떻게 제거할 수 있나요? .DS_Store Git 저장소의 파일이 있나요?

도움이 되었습니까?

해결책

저장소에서 기존 파일을 제거합니다.

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

라인을 추가하세요

.DS_Store

파일에 .gitignore, 저장소의 최상위 수준에서 찾을 수 있습니다(아직 없는 경우 생성됨).최상위 디렉토리에서 이 명령을 사용하면 쉽게 이 작업을 수행할 수 있습니다.

echo .DS_Store >> .gitignore

그 다음에

git add .gitignore
git commit -m '.DS_Store banished!'

다른 팁

benzado와 webmat의 답변을 결합하여 업데이트 git rm, 저장소에 없는 파일에서 실패하지 않고 모든 사용자가 일반적으로 붙여넣을 수 있도록 만듭니다.

# remove any existing files from the repo, skipping over ones not in repo
find . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch
# specify a global exclusion list
git config --global core.excludesfile ~/.gitignore
# adding .DS_Store to that list
echo .DS_Store >> ~/.gitignore

이 문제를 해결하는 가장 좋은 해결책은 시스템의 모든 git 저장소에서 이러한 파일을 전역적으로 무시하는 것입니다.다음과 같은 전역 gitignore 파일을 생성하면 됩니다.

vi ~/.gitignore_global

다음과 같은 파일을 무시하는 규칙을 추가합니다.

# Compiled source #
###################
*.com
*.class
*.dll
*.exe
*.o
*.so

# Packages #
############
# it's better to unpack these files and commit the raw source
# git has its own built in compression methods
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip

# Logs and databases #
######################
*.log
*.sql
*.sqlite

# OS generated files #
######################
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db

이제 이 파일을 전역 git 구성에 추가하세요.

git config --global core.excludesfile ~/.gitignore_global

편집하다:

애플리케이션 자산으로 커밋해야 할 수 있으므로 아이콘을 제거했습니다.

어떤 상황에서는 일부 파일을 전체적으로 무시할 수도 있습니다.저에게는 .DS_Store가 그 중 하나입니다.방법은 다음과 같습니다.

git config --global core.excludesfile /Users/mat/.gitignore

(또는 원하는 파일)

그런 다음 repo의 .gitignore처럼 파일을 편집합니다.절대 경로를 사용해야 한다고 생각합니다.

단계적으로 변경된 파일이 있어서 파일을 제거할 수 없는 경우:

git rm --cached -f *.DS_Store

작동하려면 위에서 git-rm을 git rm으로 변경해야 했습니다.

find . -depth -name '.DS_Store' -exec git rm --cached '{}' \; -print

터미널을 열고 "cd < ProjectPath >"를 입력하세요.

  1. 기존 파일을 제거합니다.find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch

  2. nano .gitignore

  3. 이거 추가 해봐 .DS_Store

  4. "ctrl + x"를 입력하세요

  5. "y"를 입력하세요

  6. 파일을 저장하려면 입력하세요.

  7. git add .gitignore

  8. git commit -m '.DS_Store removed.'

최고 투표 답변은 훌륭하지만 저와 같은 초보자를 돕기 위해 .gitignore 파일을 만들고, 편집하고, 저장하고, 이미 git에 추가했을 수 있는 파일을 제거한 다음 파일을 Github에 푸시하는 방법이 있습니다.

.gitignore 파일 만들기

.gitignore 파일을 만들려면 다음을 수행하면 됩니다. touch 지정된 이름을 가진 빈 파일을 생성하는 파일입니다.다음 명령을 사용할 수 있도록 .gitignore라는 파일을 생성하려고 합니다.

touch .gitignore

파일을 무시하세요

이제 .gitignore에 DS Store 파일을 무시하도록 git에 지시하는 줄을 추가해야 합니다.이를 수행하려면 나노 편집기를 사용할 수 있습니다.

nano .gitignore

Nano는 빠져 나오는 방법에 대한 지침이 포함되어 있기 때문에 좋습니다.(Ctrl 키-영형 저장하다, Ctrl 키-엑스 나가기 위해서)

여기에서 아이디어 중 일부를 복사하여 붙여넣으세요. Github 요지 무시할 몇 가지 일반적인 파일을 나열합니다.이 질문에 답하기 위해 가장 중요한 것은 다음과 같습니다.

# OS generated files #
######################
.DS_Store
.DS_Store?

#은 주석이며 파일이 커짐에 따라 정리하는 데 도움이 됩니다.

이것 Github 기사 또한 몇 가지 일반적인 아이디어와 지침도 있습니다.

git에 이미 추가된 파일을 제거하세요.

마지막으로 디렉터리에서 해당 DS Store 파일을 실제로 제거해야 합니다.

가장 많이 투표된 답변에서 이 훌륭한 명령을 사용하십시오.이렇게 하면 디렉터리의 모든 폴더를 살펴보고 해당 파일을 git에서 제거합니다.

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

.gitignore를 Github에 푸시하세요.

마지막 단계에서는 실제로 .gitignore 파일을 커밋해야 합니다.

git status

git add .gitignore

git commit -m '.DS_Store banished!'

다음을 사용하여 삭제하세요. git-rm, 를 추가한 다음 .DS_Store를 추가합니다. .gitignore 다시 추가되는 것을 막으려면당신은 또한 사용할 수 있습니다 블루하베스트 모두 함께 생성되는 것을 막기 위해

기존 파일을 제거하려면 다음 명령을 사용하십시오.

find . -name '*.DS_Store' -type f -delete

그런 다음 추가 .DS_Store 에게 .gitignore

다음은 나에게 가장 효과적이었습니다.일치하지 않는 파일과 로컬 수정이 있는 파일을 처리했습니다.참고로 이는 git 1.7.4.4를 실행하는 Mac 10.7 시스템에서 이루어졌습니다.

찾아 제거:

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

또한 전역 core.excludesfile을 설정하여 모든 저장소에서 .DS_Store를 전역적으로 무시합니다.

먼저 파일을 만듭니다(아직 없는 경우).

touch ~/.gitignore

그런 다음 다음 줄을 추가하고 저장합니다.

.DS_Store

이제 전역적으로 파일을 존중하도록 git을 구성합니다.

git config --global core.excludesfile ~/.gitignore

모든 폴더 및 하위 폴더에서 DS_Store 파일을 제거하려는 경우:


이미 커밋된 DS_Store의 경우:

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

다음을 통해 무시하세요.

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

나는 다음 줄을 발견했습니다. snipplr 모두 닦는 것이 가장 좋습니다 .DS_Store, 로컬 수정이 있는 항목을 포함합니다.

find . -depth -name '.DS_Store' -exec git-rm --cached '{}' \; -print

--cached 옵션을 선택하면 로컬을 유지합니다. .DS_Store 어차피 재현될 테니까.

위에서 언급한 것처럼 추가하세요. .DS_Store 프로젝트 루트의 .gitignore 파일에 추가하세요.그러면 그것은 더 이상 (repos의) 당신의 시야에 없을 것입니다.

파티에 조금 늦었지만 좋은 답변을 받았습니다..DS_Store 파일을 제거하려면 터미널 창에서 다음 명령을 사용하십시오. 단, 'find'를 사용하여 파일을 삭제할 때는 매우 주의하시기 바랍니다.-name 옵션과 함께 특정 이름을 사용하는 것이 이를 사용하는 가장 안전한 방법 중 하나입니다.

cd directory/above/affected/workareas
find . -name .DS_Store -delete

단순히 앞뒤로 나열하려면 "-delete"를 생략하면 됩니다.그러면 그들이 사라졌다는 것을 확신하게 될 것입니다.

~/.gitignore_global 조언과 관련하여:여기서 조심하세요.당신은 그 멋진 파일을 각 작업장의 최상위 수준 내에서 .gitignore에 배치하여 저장소를 복제하는 사람이라면 누구나 사용의 이점을 얻을 수 있습니다.

이것은 작동합니다:

find . -name "*.DS_Store" -type f -exec git-rm {} \;

이름이 다음으로 끝나는 모든 파일을 삭제합니다. .DS_Store, 포함 ._.DS_Store.

어떤 이유로 위의 어느 것도 내 Mac에서는 작동하지 않았습니다.

내 솔루션은 터미널에서 실행됩니다.

rm .DS_Store

그런 다음 다음 명령을 실행하십시오.

git pull origin master

저장소를 초기화할 때 다음이 포함된 git 명령을 건너뛰세요.

-u

그리고 그것은 문제가 되어서는 안 됩니다.

이것은 위의 두 가지 답변을 결합한 저에게 효과적이었습니다.

  • $ git rm --cached -f *.DS_Store
  • $ git commit -m "Filter-Branch -Index-filter 'git rm-캐시 된-ingonore-unmatch .ds_store"
  • $ git push 원본 마스터 --force
$ git commit -m "filter-branch --index-filter 'git rm --cached --ignore-unmatch .DS_Store"
$ git push origin master --force

이 문제를 해결하는 몇 가지 해결 방법이 있습니다..DS_Store 파일 생성을 방지하려면 OS X Finder를 사용하여 폴더를 보지 마십시오.폴더를 보는 또 다른 방법은 UNIX 명령줄을 사용하는 것입니다..DS_Store 파일을 제거하려면 DS_Store Terminator라는 타사 제품을 사용할 수 있습니다.전체 시스템에서 .DS_Store 파일을 삭제하려면 UNIX 쉘 명령을 사용할 수 있습니다.애플리케이션에서 터미널 발사 : UNIX 쉘 프롬프트의 유틸리티 다음 UNIX 명령을 입력하십시오.sudo find / -name ".DS_Store" -깊이 -exec rm {} \;비밀번호를 묻는 메시지가 나타나면 Mac OS X 관리자 비밀번호를 입력하세요.

이 명령은 전체 시스템을 통해 파일 시스템의 루트(/)부터 시작하여 .DS_Store를 모두 찾아서 제거하는 명령입니다.이 명령이 예약된 작업으로 실행되도록 구성하려면 아래 단계를 따르십시오.애플리케이션에서 터미널 발사 : UNIX 쉘 프롬프트의 유틸리티 다음 UNIX 명령을 입력하십시오.

Sudo Crontab -e 비밀번호를 입력하면 Mac OS X 관리자 암호를 입력하십시오.vi 편집기에서 키보드의 문자 I를 한 번 누르고 다음을 입력하십시오.

15 1 * * * 루트 찾기 / -name ".DS_Store" -깊이 -exec rm {} \;

이를 crontab 항목이라고 하며 다음과 같은 형식을 갖습니다.

분 시 DayOfMonth 월 DayOfWeek 사용자 명령입니다.

crontab 항목은 루트라는 계정에 의해 매일 오전 1시 15분에 시스템에서 자동으로 명령이 실행된다는 의미입니다.

명령은 find부터 시작하여 까지 이어집니다.시스템이 실행 중이 아니면 이 명령은 실행되지 않습니다.

항목을 저장하려면 Esc 키를 한 번 누른 다음 Shift + z+ z를 동시에 누르세요.

메모:4단계의 정보는 vi 편집기에만 해당됩니다.

이것을 파일 .gitignore에 추가하십시오.

#Ignore folder mac
.DS_Store

이것을 저장하고 커밋하세요

git add -A
git commit -m "ignore .DS_Store"

이제 모든 커밋에 대해 이것을 무시합니다.

무시된 파일을 제거하십시오:

(.DS_스토어)

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

제거할 필요가 없습니다 .DS_STORE 장소 상에서

그냥 추가하세요 .gitignore 파일

.gitignore 파일은 Git에게 프로젝트에서 무시할 파일이나 폴더를 알려주는 텍스트 파일입니다.

명령

  • nano .gitignore
  • 쓰다 .DS_Store 그런 다음 클릭 CTRL+X > y > Hit Return
  • git status 변경사항을 마지막으로 확인하려면
  • git add .gitignore
  • git commit -m 'YOUR COMMIT MESSAGE'
  • git push origin master
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top