github
중요한 데이터 또는 대용량 파일 제거
수색…
소개
비고
공동 작업자에게 이전 (오염 된) 저장소 기록으로 만든 모든 지점을 병합하지 않고 리베이스 (rebase)하도록 지시합니다. 하나의 병합 커밋을 수행하면 오염 된 기록의 일부 또는 전부를 다시 퍼뜨릴 수 있습니다.
시간이 지났고 git filter-branch에 의도하지 않은 부작용이 없다고 확신하면 다음 명령을 사용하여 로컬 저장소의 모든 객체를 참조 취소하고 가비지 수집 할 수 있습니다 (Git 1.8.5 이상 사용).
git for-each-ref --format = '삭제 % (refname)'refs / original | git update-ref --stdin
git reflog expire --expire = now --all
git gc --prune = now
필터 - 분기 사용
git filter-branch --force --index-filter \
'git rm --cached --ignore-unmatch PATH-TO-YOUR-FILE-WITH-SENSITIVE-DATA' \
--prune-empty --tag-name-filter cat -- --all
중요한 데이터가 포함 된 파일을 .gitignore에 추가하여 실수로 다시 커밋하지 않도록하십시오.
echo "YOUR-FILE-WITH-SENSITIVE-DATA" >> .gitignore
git add .gitignore
git commit -m "Add YOUR-FILE-WITH-SENSITIVE-DATA to .gitignore"
로컬 저장소를 GitHub로 푸시합니다.
git push origin --force --all
태그가있는 릴리스에서 중요한 파일을 제거하려면 Git 태그를 강제로 밀어 넣어야합니다.
git push origin --force --tags
BFG Repo Cleaner 사용
BFG Repo cleaner는 git filter-branch의 대안입니다. 원본에서 컴파일 된 바이너리처럼 잘못 처리 된 중요한 데이터 나 큰 파일을 제거하는 데 사용할 수 있습니다. 스칼라로 작성되었습니다.
프로젝트 웹 사이트 : BFG Repo Cleaner
요구 사항
Java Runtime Environment (Java 7 이상 - BFG v1.12.3은 Java 6를 지원하는 마지막 버전 임). 스칼라 라이브러리와 다른 모든 종속성은 다운로드 가능한 jar 파일에 포함됩니다.
중요한 데이터가 포함 된 파일 제거
bfg --delete-files YOUR-FILE-WITH-SENSITIVE-DATA