무시하고 싶은 많은 파일을 커밋했습니다. 앞으로 커밋에서 이러한 파일을 무시하도록 git에 어떻게 알릴 수 있습니까?
편집 : 저장소에서도 제거하고 싶습니다. 이 파일은 빌드 후 또는 사용자 별 툴링 지원을 위해 생성 된 파일입니다.
무시하고 싶은 많은 파일을 커밋했습니다. 앞으로 커밋에서 이러한 파일을 무시하도록 git에 어떻게 알릴 수 있습니까?
편집 : 저장소에서도 제거하고 싶습니다. 이 파일은 빌드 후 또는 사용자 별 툴링 지원을 위해 생성 된 파일입니다.
답변:
.gitignore
무시하려는 파일과 일치하도록 편집git rm --cached /path/to/file
또한보십시오:
.gitignore
무시 된 파일과 일치하도록 편집 한 후 git ls-files -ci --exclude-standard
제외 목록에 포함 된 파일을 볼 수 있습니다 . 그런 다음 할 수 있습니다
//On Linux:
git ls-files -ci --exclude-standard -z | xargs -0 git rm --cached
//On Windows:
for /F "tokens=*" %a in ('git ls-files -ci --exclude-standard') do @git rm --cached "%a"
//On mac
alias apply-gitignore="git ls-files -ci --exclude-standard -z | xargs -0 git rm --cached"
디스크에서 삭제하지 않고 저장소에서 제거합니다.
편집 : .gitconfig 파일에 별칭으로 추가하여 언제든지 언제든지 실행할 수 있습니다. [alias] 섹션 아래에 다음 줄을 추가하십시오 (Windows 또는 Mac의 경우 필요에 따라 수정).
apply-gitignore = !git ls-files -ci --exclude-standard -z | xargs -0 git rm --cached
( -r
에서 플래그 xargs
방지 git rm
빈 결과에서 실행하고 사용법 메시지를 인쇄,하지만 GNU의 findutils의에 의해 지원 될 수에서. 다른 버전 xargs
또는 유사한 옵션이 표시되지 않을 수 있습니다.)
이제 당신은 git apply-gitignore
당신의 레포를 입력 할 수 있으며 , 당신을 위해 일을 할 것입니다!
!
전 git입니까? 글쎄 ... 내 하나는로 일했다 alias apply-gitignore="git ls-files -ci --exclude-standard -z | xargs -0 git rm --cached"
. tks!
for /F "tokens=*" %a in ('git ls-files -ci --exclude-standard') do @git rm --cached "%a"
-r
기본값이며 BSD 버전에서는 허용되지 않습니다. 따라서 제거하십시오 -r
.
파일을 리포지토리에 남겨두고 향후 변경 사항은 무시하십시오.
git update-index --assume-unchanged <file>
그리고 이것을 취소하려면 :
git update-index --no-assume-unchanged <file>
이 방법으로 설정된 파일을 찾으려면 다음을 수행하십시오.
git ls-files -v|grep '^h'
http://blog.pagebakers.nl/2009/01/29/git-ignoring-changes-in-tracked-files/ 에 대한 원래 답변에 대한 크레딧
git ls-files -ci --exclude-standard -z | xargs -0 git update-index --assume-unchanged
도움 이 된다면 결합 할 수 있습니다 .
git rm --cached
리포지토리에서 파일이 제거되므로 퀴즈가 필요하지 않습니다. 감사합니다. 정말 감사. 당신의 대답은 저에게 많은 도움이됩니다.
이 단계를 따르세요:
gitignore
파일 경로 추가
이 명령을 실행
git rm -r --cached foldername
평소대로 변경 사항을 커밋하십시오.