programing

어떻게 하면 삭제할 수 있습니다.DS_Git 저장소에서 파일을 저장하시겠습니까?

stoneblock 2023. 4. 9. 21:03

어떻게 하면 삭제할 수 있습니다.DS_Git 저장소에서 파일을 저장하시겠습니까?

성가신 X를 해야 요?.DS_StoreGit ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★」

의 「」를 삭제합니다..DS_Store다음 중 하나:

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

다음 행 추가:

.DS_Store

'''에 접속합니다..gitignore이 파일은 저장소의 최상위 수준에 있습니다(또는 파일이 아직 없는 경우 생성).이것은, 톱 디렉토리에 있는 다음의 커맨드를 사용하면 간단하게 실시할 수 있습니다.

echo .DS_Store >> .gitignore

그런 다음 파일을 repo에 커밋합니다.

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

하여 ★★★★★★★★★★★★★★★★★★★★★로 갱신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

가끔씩.DS_Store 파일은 원격 저장소에 있지만 로컬 프로젝트 폴더에는 표시되지 않습니다.이 문제를 해결하려면 캐시된 파일을 모두 제거하고 다시 추가해야 합니다.

스텝 1: 이 파일을 .gitignore 파일에 추가합니다.

# Ignore Mac DS_Store files
.DS_Store
**/.DS_Store

2단계: 다음 명령을 사용하여 캐시된 파일을 삭제하고 다시 추가합니다.

git rm -r --cached .
git add .
git commit -am "Removed git ignored files"
git push -f origin master

이 파일을 영구히 삭제하는 가장 좋은 방법은 다음과 같습니다.

하다.gitignore 삭제:

echo .DS_Store >> ~/.gitignore_global

Git에게 모든 저장소에 대해 이 파일을 사용하고 싶다는 것을 알립니다.

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

하다!.DS_Store이치노

상위 투표 답변은 훌륭하지만, 저 같은 신입사원을 돕는 방법은 다음과 같습니다. .gitignore 파일을 만들고, 편집하고, 저장하고, 이미 git에 추가한 파일을 삭제하고, Github에 파일을 푸시하는 방법입니다.

.gitignore 파일을 만듭니다.

하려면 .gitignore 파일을 작성하기만 하면 .touch지정된 이름의 빈 파일을 생성하는 파일입니다.무시하다

touch .gitignore

파일 무시

이제 git에게 DS Store 파일을 무시하도록 지시하는 행을 .gitignore에 추가해야 합니다.나노 에디터를 사용하여 이 작업을 수행할 수 있습니다.

nano .gitignore

나노는 빠져나가는 방법이 포함되어 있기 때문에 좋습니다.CtrlO (-저장,X 종료)

이 Github gest에서 아이디어를 복사하여 붙여넣습니다.이 Github gest에는 무시할 수 있는 일반적인 파일이 나열되어 있습니다.이 질문에 대한 가장 중요한 답변은 다음과 같습니다.

# 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!'

터미널을 열고 "cd < Project Path >" 라고 입력합니다.

  1. 파일 :find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch

  2. nano .gitignore

  3. 추가 가.DS_Store

  4. "syslog + x"를 입력합니다.

  5. "y"를 입력합니다.

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

  7. git add .gitignore

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

위에서 git-rm을 gitrm으로 변경하여 동작시켜야 했습니다.

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

기존 파일을 삭제하려면 다음 명령을 사용합니다.

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

에 '''를 추가합니다..DS_Store로로 합니다..gitignore

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


In case of already committed 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

순서 1

하면 모든 것이 됩니다..DS_Store디렉토리 내의 파일(서브 디렉토리 포함)

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

순서 2

을 더하면 됩니다..gitignore루트 디렉토리모든 서브 디렉토리의 DS_Store 파일이 git으로 전송되지 않도록 합니다.

**/.DS_Store

git docs에서:

  • 선두의 "**" 뒤에 슬래시를 붙이면 모든 디렉토리가 일치합니다.예를 들어 "**/foo"는 패턴 "foo"와 같은 파일 또는 디렉토리 "foo"와 어디에서나 일치합니다."**/foo/bar"는 "foo" 디렉토리 바로 아래에 있는 파일 또는 디렉토리 "bar"와 일치합니다.

하여 삭제하다git-rm 합니다. to DS_Store.gitignore다시 추가되는 걸 막으려고요또한 BlueHarvest를 사용하여 모두 함께 생성되지 않도록 할 수 있습니다.

다음과 같은 것이 가장 효과적이었습니다.일치하지 않는 파일 및 로컬 수정 파일을 처리했습니다.참고로, 이것은 git 1.7.4.4를 실행하는 Mac 10.7 시스템에서 실행되었습니다.

검색 및 제거:

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

또, 글로벌하게 무시합니다.DS_글로벌 core.excludes 파일을 설정하여 모든 저장소에 저장합니다.

먼저 파일을 만듭니다(아직 존재하지 않는 경우).

touch ~/.gitignore

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

.DS_Store

이제 파일을 글로벌하게 존중하도록 git을 설정합니다.

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

파티에 조금 늦었지만 좋은 답이 있어요.를 삭제하려면DS_Store files 터미널 창에서 다음 명령을 사용하되, 'find'를 사용하여 파일을 삭제해야 합니다.-name 옵션과 함께 특정 이름을 사용하는 것이 보다 안전한 사용 방법 중 하나입니다.

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

"-delete"는 생략할 수 있습니다.그러면 그들이 사라졌다는 것을 안심할 수 있을 것이다.

~/.gitignore_global 조언에 대해: 여기서 주의하세요.이 멋진 파일을 각 작업영역의 최상위 레벨에 있는 .gitignore에 배치하여 커밋하고 repo를 복제하는 모든 사용자가 이 파일을 사용할 수 있도록 해야 합니다.

는 sniplr의 다음 행이 모든 것을 지우는 데 가장 좋다는 것을 발견했다..DS_Store( ( ( ( ( 。

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

--cached,, "" " " ".DS_Store어차피 재생산될 거니까

위에서처럼 '우리'를 ..DS_Store프로젝트 루트에 있는 파일을 무시합니다.그러면 더 이상 (저장소가) 보이지 않게 됩니다.

이 조작은 유효합니다.

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

이 름름 it it it it it it로 끝나는 모든 파일이 삭제됩니다..DS_Store , 「」를 한다.._.DS_Store.

어떤 이유에선지, 내 맥에서는 위 중 어느 것도 작동하지 않았다.

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

rm .DS_Store

그런 다음 다음 명령을 실행합니다.

git pull origin master

저장소를 초기화할 때 다음을 포함하는 git 명령을 건너뜁니다.

-u

그리고 그건 문제가 되지 않을 거야.

위의 두 가지 답을 조합한 결과, 저는 이 방법이 효과가 있었습니다.

  • $ git rm --syslog -f *DS_스토어
  • $ git commit - m " filter - index - filter ' index - filter ' rm rmrm -- displaces - unmatch .DS_Store"
  • $git push origin 마스터 --force

무시된 파일 제거:

(.DS_Store)

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

.gitignoretouch .gitignore

다음 행을 추가합니다.

.DS_Store

을 건지다.gitignore회답하다

$ git commit -m "filter-branch --index-filter 'git rm --cached --ignore-unmatch .DS_Store"
$ git push origin master --force

이 파일을 파일에 추가합니다.

#Ignore folder mac
.DS_Store

이것을 저장하고 커밋합니다.

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

그리고 이제 넌 이걸 무시해 버렸어

이 문제를 해결하기 위한 몇 가지 해결책이 있습니다.를 작성하지 않도록 합니다.DS_Store 파일, OS X Finder를 사용하여 폴더를 표시하지 마십시오.폴더를 표시하는 다른 방법으로는 UNIX 명령줄을 사용하는 방법이 있습니다.를 삭제하려면DS_Store 파일 DS_Store Terminator라는 서드파티 제품을 사용할 수 있습니다.를 삭제하려면시스템 전체에서 DS_Store 파일을 UNIX 쉘 명령을 사용할 수 있습니다.응용 프로그램에서 터미널 시작:유틸리티 UNIX 쉘 프롬프트에서 UNIX 명령어 sudo find / -name 을 입력합니다.DS_Store" - depth - exec rm {} \; 비밀번호를 입력하라는 메시지가 나타나면 Mac OS X Administrator 비밀번호를 입력합니다.

이 명령어는 의 모든 항목을 검색하여 삭제합니다.DS_파일 시스템의 루트(/)부터 머신 전체에 걸쳐 저장합니다.이 명령어를 스케줄된 태스크로 실행하도록 설정하려면 다음 절차를 따릅니다.Launch Terminal from Applications :유틸리티 UNIX 쉘 프롬프트에서 다음 UNIX 명령을 입력합니다.

sudo crontab -e 비밀번호를 입력하라는 메시지가 나타나면 Mac OS X Administrator 비밀번호를 입력합니다.vi 에디터에서 키보드의 문자 I를 한 번 누르고 다음과 같이 입력합니다.

15 1 * * * root find / - name " 。DS_Store" - depth - exec rm {} \;

이것은 crontab 엔트리라고 불리며 형식은 다음과 같습니다.

Minute Hour Day Of Month Day Of Week 사용자 명령어.

crontab 엔트리는 root라는 계정으로 매일 오전 1시 15분에 시스템이 명령을 자동으로 실행함을 의미합니다.

이 명령어는 find 에서까지 모두 시작됩니다.시스템이 실행되지 않으면 이 명령어는 실행되지 않습니다.

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

메모: 순서 4의 정보는 vi 에디터 전용입니다.

" " " ".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

작성 내용:

git checkout -- ../.DS_Store

(#파일에 대한 로컬 변경(영구적) 폐기) 및 정상적으로 동작했습니다!

위의 어떤 방법으로도 도움을 받지 못한 사용자는 .gitignore를 자세히 검사해 보십시오.디렉토리와 서브디렉토리 사이에 규칙이 조합되어 있는 경우가 있기 때문에,가 귀찮을 수 있습니다.DS_Store 파일은 이러한 폴더에서만 무시되지 않습니다.를 들어 커스텀디렉토리에 있는 gensrc 폴더를 제외하고 무시하는 경우.gitignore는 다음과 같습니다.

.DS_Store
gensrc
!custom/**

설정에서는 any/path/사용됩니다.DS_Store가 무시되지만 custom/gensrc/는 무시되지 않습니다.DS_Store 및 수정 프로그램이 이동합니다.DS_Store 엔트리를 .gitignore 파일 하단에 저장합니다.

이 방법은 GitHub Desktop 앱을 사용할 때 사용할 수 있습니다.

  1. 아직 없는 경우 앱에서 저장소를 엽니다(oO).
  2. 리포지토리 탭에서 리포지토리 설정을 선택합니다.여기에 이미지 설명 입력
  3. "Ignored files"로 이동하여 무시할 파일을 추가합니다.여기에 이미지 설명 입력

언급URL : https://stackoverflow.com/questions/107701/how-can-i-remove-ds-store-files-from-a-git-repository