문제의 원인
Github 리포지토리에 DB 비밀번호 값을 업로드하던 중 안타까운 사고가 발생했습니다.
많은 생각이나 수정 없이 파일을 로컬에서 삭제한 후 다시 커밋
원격 오리진으로 푸시해도 히스토리에 정보가 보존됩니다.
솔루션
원본 저장소 복제
git clone --mirror (레포지토리 주소)
cd (레포지토리 폴더명)
BFG Repo 클리너 다운로드
rtyley의 BFG 저장소 클리너
$ bfg –strip-blobs-bigger-than 100M –replace-text Banned.txt repo.git git-filter-branch의 대안 BFG는 잘못된 데이터 정리를 제거하기 위한 git-filter-branch의 더 간단하고 빠른 대안입니다. git 리포지토리 기록: Crazy Big Files Re 제거
rtyley.github.io
– 다운로드한 JAR 파일을 작업하려는 프로젝트의 로컬 최상위 경로에 배치합니다. 컴퓨터에 저장
문제의 역사를 알고

– 비밀번호 값은 “database.py” 파일에 그대로 표시되어 이 기록을 지워야 했습니다.
기록 삭제
– BFG Repo-Cleaner의 문제 기록 지우기
java -jar (jar파일 경로) --delete-files (지울 파일 이름)
git reflog expire --expire=now --all && git gc --prune=now --aggressive
git push -f origin main
– 이렇게 나오면 성공

– GitHub History에서 해당 이슈의 히스토리 기록이 삭제되었는지 확인

지운 후 옷깃이 꼬였을 때 해결 방법
– 원격 저장소와 로컬 저장소가 얽혀 있는 경우 다음 명령어 입력
– 단계, 로컬에 있는 모든 파일이 없어져도 문제가 되지 않습니다. “원격 git 저장소의 마스터를 로컬로 덮어쓰고 싶습니다.”
git fetch --all
git reset --hard origin/master
git pull origin master