Programing

커밋 후 .gitignore

lottogame 2020. 5. 14. 07:58
반응형

커밋 후 .gitignore


Github에서 호스팅되는 git 저장소가 있습니다. 많은 파일을 커밋 후, 나는 내가 만들 필요가 실현하고 .gitignore및 제외 .exe, .obj파일을.

그러나 커밋 된 파일을 리포지토리에서 자동으로 제거합니까? 그것을 강요 할 방법이 있습니까?


아니요 repo에서 이미 커밋 된 파일을 파일에 추가 되었기 때문에 강제로 제거 할 수 없습니다. .gitignore

당신은해야 git rm --cached당신이 REPO에서 원하지 않는 파일을 제거 할 수 있습니다. (로컬 복사본을 유지하고 리포지토리에서 제거하고 싶을 수 있기 때문에 --cached) 따라서 리포지토리에서 모든 exe를 제거하려면

git rm --cached /\*.exe

(별표 *는 셸에서 인용됩니다. 셸이 아닌 git은 파일 및 하위 디렉토리의 경로 이름을 확장 할 수 있습니다)


그러나 커밋 된 파일을 리포지토리에서 자동으로 제거합니까?

아니요. 기존 .gitignore파일을 사용하더라도 -f(force) 플래그를 사용하여 "무시 된"파일을 스테이징 할 수 있습니다. 파일이 이미 커밋 된 경우 자동으로 제거되지 않습니다.

git rm --cached path/to/ignored.exe

변경 사항을 아직 푸시하지 않은 경우 :

git rm -r --cached .
git add .
git commit -m 'clear git cache'
git push

.idea와 대상 폴더를 제거해야했고 모든 주석을 읽은 후에 이것이 효과가있었습니다.

git rm -r .idea
git rm -r target
git commit -m 'removed .idea folder'

그리고 마스터로 밀어


그러나 커밋 된 파일을 리포지토리에서 자동으로 제거합니까?

아니.

이를위한 '최상의'레시피는 다음 git filter-branch과 같이 쓰여 있습니다.

git-filter-branch의 매뉴얼 페이지에는 포괄적 인 예제가 포함되어 있습니다.

참고 기록을 다시 작성하게됩니다. 실수로 추가 한 파일이 포함 된 개정판을 게시 한 경우 해당 공개 지사 사용자에게 문제가 발생할 수 있습니다. 그들에게 알리거나 파일을 얼마나 제거해야하는지 생각해보십시오.

참고 태그가있는 경우 항상 --tag-name-filter cat옵션을 사용하십시오 git filter-branch. 나중에 필요하다는 것을 깨달을 때 결코 아프지 않고 머리통을 구할 것입니다.


파일을 삭제 한 다음 커밋 한 후에도 해당 파일은 기록에 남아 있습니다. 이를 삭제하려면 BFG Repo-Cleaner 사용을 고려하십시오 . git-filter-branch의 대안입니다.

참고 URL : https://stackoverflow.com/questions/6535362/gitignore-after-commit

반응형