2017-10-03 16 views
1

저희 회사 웹 사이트에는 큰 바이너리 (PDF, MP3 등)가 들어있는 디렉토리가있는 Git repo가 ​​있습니다. 당연히, 이것은 복제를 꽤 비실용적으로 만드는 정말로 큰 repo를 가져 왔습니다. 여러 가지 지점에서 많은 수의 커밋이있었습니다.Bloated Git Repo W/BFG 정리하기

나는 내 저장소에서이 바이너리를 제거하려는 수단으로 BFG Repo-Cleaner (이 과정을 간소화하는 것처럼 보임)을 확인했습니다. 그러나 BFG를 실행하기 전에 저장소의 HEAD에서이 파일을 제거하는 올바른 절차를 이해하지 못합니다 (이는 최신 커밋이 기록에서 정리할 모든 파일을 제거했다는 가정하에 작동 함).

명확히하기 위해 내 git 색인과 작업 트리는 현재 웹 사이트의 문서 루트에 있습니다. 저장소에서 제거하려는 파일은 문서 루트에있는 위치에 있어야합니다. 어떻게하면 Git이 후속 변경 사항을 풀 때 삭제되지 않고이 디렉토리를 잊어 버릴 수 있습니까?

도움을 주시면 감사하겠습니다. 감사! 당신이 audio 디렉토리에있는 MP3 파일의 톤이있는 경우

답변

0

, 당신이 할 수 있습니다 :

  1. 는 다른 곳 MP3 파일의 복사본을 넣습니다.
  2. git rm audio/*.mp3는 변경 내용을 커밋 할 파일을
  3. git commit을 무시 무대에 자식이 미래
  4. git add .gitignore에 MP3 파일을 무시하도록
  5. echo "*.mp3" >> .gitignore 제거
  6. 을 위해 그들을 무대에

이제 MP3 파일 것 더 이상 HEAD에 없지만, audio 디렉토리에 다시 넣으면 git은이를 무시합니다.

면책 조항 :이 정확한 순서를 테스트하지 않았 으면 삭제를 먼저 커밋 한 다음 .gitignore을 별도 커밋으로 업데이트해야한다고 생각하지만 그렇게 생각하지 않습니다.