Programming

새로운 .gitignore 파일과 git repo 재 동기화

procodes 2020. 5. 20. 22:27
반응형

새로운 .gitignore 파일과 git repo 재 동기화


gitignore 파일을 업데이트 한 후 git 저장소를 "새로 고침"할 수 있습니까?

방금 gitignore에 더 많은 무시 (?)를 추가하고 새 파일과 일치하는 저장소에 이미있는 항목을 제거하고 싶습니다.


" .gitignore 파일을 무시하지 않음 "에 언급 된 솔루션 은 약간 극단적이지만 작동해야합니다.

# rm all files
git rm -r --cached .
# add all files as per new .gitignore
git add .
# now, commit for new .gitignore to apply
git commit -m ".gitignore is now working"

( 아래의 jball037 주석과 같은 사건을 피하기 위해 유지하려는 변경 사항을 먼저 커밋하십시오 . 옵션은 디스크의 파일을 그대로 유지합니다.)
--cached

또한 블로그 게시물 " Git에서 이미 추적 된 파일을 무시하도록 만들기 "에보다 세분화 된 솔루션이 있습니다 .

git rm --cached `git ls-files -i --exclude-standard`

Bassim그의 편집에서 제안합니다 :

경로에 공간이있는 파일

과 같은 오류 메시지가 표시 fatal: path spec '...' did not match any files되면 경로에 공백이있는 파일이있을 수 있습니다.

옵션을 사용하여 다른 모든 파일을 제거 할 수 있습니다 --ignore-unmatch.

git rm --cached --ignore-unmatch `git ls-files -i --exclude-standard`

그러나 일치하지 않는 파일은 저장소에 남아 있으며 경로를 큰 따옴표로 묶어 명시 적으로 제거해야합니다.

git rm --cached "<path.to.remaining.file>"

이해가 안될 수도 있지만 새로 무시한 파일을 삭제하려고합니까? 아니면 이러한 파일의 새로운 수정 사항을 무시 하시겠습니까? 이 경우 문제가 해결 된 것입니다.

이전에 커밋 된 무시 된 파일을 삭제하려면

git rm –cached `git ls-files -i –exclude-standard`
git commit -m 'clean up'

참고 URL : https://stackoverflow.com/questions/7075923/resync-git-repo-with-new-gitignore-file

반응형