..png)
내 코드베이스에 여러 로컬 커밋을 수행하고 이를 내 리포지토리에 푸시하려고 했지만 대용량 파일이 꽤 많았습니다. 저는 그냥 포기하고 계속 작업하면서 로컬 커밋을 했습니다. 지금은 대용량 파일을 삭제하고 다시 커밋했는데 원본 대용량 파일을 계속 푸시하려고 합니다. 원래 50MB가 넘는 파일을 무시하도록 커밋한 후에 gitignore를 추가하려고 시도했지만 소용이 없었습니다.
어떤 아이디어가 있나요?
답변1
읽다여기필터 분기에 대해.
누군가 실수로 git add .를 사용하여 거대한 바이너리 파일을 커밋했는데, 이를 어디에서나 제거하고 싶습니다. 실수로 비밀번호가 포함된 파일을 커밋하여 프로젝트를 오픈 소스로 만들고 싶을 수도 있습니다. filter-branch는 전체 기록을 삭제하는 데 사용하고 싶은 도구입니다. 전체 기록에서 Passwords.txt라는 파일을 제거하려면 --tree-filter 옵션을 사용하여 필터 분기를 수행할 수 있습니다.
$ git filter-branch --tree-filter 'rm -f passwords.txt' HEAD
Rewrite 6b9b3cf04e7c5686a9cb838c3f36a8cb6a0fc2bd (21/21)
Ref 'refs/heads/master' was rewritten
해당 파일을 커밋한 지점에서 브랜치에 대해 대화형 리베이스를 수행하고 해당 커밋에서 해당 파일을 제거할 수도 있습니다. 위의 링크에서도 이에 대해 설명하지만 기본적으로는 다음과 같습니다.
git rebase -i HEAD~X
마지막 X 커밋을 편집할 수 있습니다.