Programing

커밋 된 파일에 .gitignore 적용

lottogame 2020. 2. 23. 11:33
반응형

커밋 된 파일에 .gitignore 적용


무시하고 싶은 많은 파일을 커밋했습니다. 앞으로 커밋에서 이러한 파일을 무시하도록 git에 어떻게 알릴 수 있습니까?

편집 : 저장소에서도 제거하고 싶습니다. 이 파일은 빌드 후 또는 사용자 별 툴링 지원을 위해 생성 된 파일입니다.


  1. .gitignore무시하려는 파일과 일치하도록 편집
  2. git rm --cached /path/to/file

또한보십시오:


.gitignore무시 된 파일과 일치하도록 편집 한 후 git ls-files -ci --exclude-standard제외 목록에 포함 된 파일을 볼 수 있습니다 . 그런 다음 git ls-files -ci --exclude-standard -z | xargs -0 git rm --cached디스크에서 삭제하지 않고 리포지토리에서 제거 할 수 있습니다 .

편집 : .gitconfig 파일에서이 별칭을 별칭으로 추가하여 언제든지 언제든지 실행할 수 있습니다. [alias] 섹션 아래에 다음 줄을 추가하십시오.

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 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/ 에 대한 원래 답변에 대한 크레딧


실제 레포가 최신 버전인지 확인하십시오

  1. .gitignore원하는대로 편집
  2. git rm -r --cached .
  3. git add .

평소처럼 커밋


오래된 질문이지만 우리 중 일부는 git-posh(파워 쉘)에 있습니다. 이것이 그 해결책입니다.

git ls-files -ci --exclude-standard | foreach { git rm --cached $_ }

다음과 같이하세요:

  1. gitignore파일 경로 추가

  2. 이 명령을 실행

    git rm -r --cached foldername
    
  3. 평소대로 변경 사항을 커밋하십시오.

참고 URL : https://stackoverflow.com/questions/7527982/applying-gitignore-to-committed-files



반응형