오류모음집/Ohouse버그
GitHub 저장소의 특정 파일, 히스토리기록을 모두 제거하기
가끔개발
2023. 11. 11. 21:31
1. EC2에 github 배포
github에 배포할때 application.yml 필요해서 어떻게 가리고 올려야할지 몰라 ignore에 있는 yml파일을 지우고 github에 올려서 pull 시키고 지우면 되겠다라는 짧은 생각에 github에 올렸지만 생각해보니 지워도 히스토리가 남는다는것을 깨닫고 히스토리를 지우는것을 찾아봤다
(AWS 비용 폭탄 맞기 싫기 때문에)
2. git revert
git revert <commit-SHA>
gitbash에서 이걸로 특정 커밋을 지워봤다
3. git filter-branch
git filter-branch -f --index-filter "git rm --cached --ignore-unmatch ./src/main/resources/application.yml" --prune-empty -- --all

전체 history에서 특정 파일 history를 지울수 있어서 사용한후
git push --force --all
사용했다
하지만 rejected 걸릴경우
git push --force-with-lease origin master
사용하여 해결하였다
4.git reset을 사용하여 커밋 제거하기
git reset --hard HEAD~1
명령은 마지막 1개의 커밋을 삭제합니다. 그러나 이렇게 하면 변경 내용이 사라지기 때문에 조심해야 합니다.
마지막으로 1. EC2에 github 배포 이거에 근본적인 잘못을 깨달아서 application.yml 파일을 private 하게 관리하거나 암호화 하는방법이 없을까 찾아보다가
- Jasypt(Java Simplified Encryption)이라는 라이브러리쓰거나
- Github Secret 사용
- Github Submodule
찾아서 적용해봐야겠다.