删除历史 commit 记录
笔记作者:BrickLoo
需求
- GitHub Pages 托管的网站由于是公开仓库,涉及个人隐私的历史 commit 记录希望删除;
- 删除
.git/
文件夹在大部分情况下是可行的方案,但是在使用到 submodules 的时候可能会遇到问题;
步骤
1. 按需备份 .git/
文件夹
2. 创建全新分支
git checkout --orphan newBranch
3. 提交所有本地文件
git add -A # Add all files and commit them
git commit
4. 删除旧分支
git branch -D main # Deletes the main branch
5. 将新分支重命名为旧分支
git branch -m main # Rename the current branch to main
6. 彻底删除旧分支记录
git gc --aggressive --prune=all # remove the old files
git reflog expire --expire-unreachable=all --all # free disk space
7. 使用强制推送上传到 GitHub
git push -f origin main # Force push main branch to github