清理 GitHub 仓库历史提交记录
本文介绍如何清理 GitHub 仓库历史提交记录,给项目重新开始一个清晰的提交历史。
清理 GitHub 仓库历史提交记录
在实际开发中,我们有时会需要清理项目的历史提交记录,比如:
- 隐藏敏感信息(如泄露的密码、API Key 等)
- 优化仓库大小,移除冗余的提交记录
- 给项目重新开始一个清晰的提交历史
本文将详细介绍如何清理 GitHub 项目的历史提交记录,并保留当前文件内容。
⚠ 注意事项
- 操作不可逆:清理提交记录会永久删除历史提交,无法恢复,请提前备份!
- 影响协作者:其他协作者需要重新克隆项目,否则可能导致冲突。
- 谨慎操作远程分支:确保操作的是正确的分支,特别是 main 或 master。
实现步骤
1.克隆你的项目
确保你本地有该仓库的副本。如果没有,请先克隆:
1
2
git clone <远程仓库地址>
cd <仓库目录>
2.创建孤立分支
创建一个孤立分支(不会保留任何提交历史):
1
git checkout --orphan temp_branch
此时,temp_branch 是一个没有历史记录的全新分支。
3.清空 Git 提交记录
(1) 删除当前分支中的所有文件,但不影响本地文件:
1
git rm -rf --cached .
(2) 将本地文件重新添加到暂存区:
1
git add .
(3) 提交新的初始提交:
1
git commit -m "Initial commit"
4.替换原始分支
将新的分支覆盖原始分支(例如 main):
1
2
git branch -M main
git push origin main --force
5.删除远程的多余分支(可选)
如果远程有其他分支不再需要,可以使用以下命令删除:
1
git push origin --delete <分支名>
最终效果
- 远程仓库的历史提交记录已被清空。
- 所有文件被保留,且只有一次新的提交。
- 协作者需要重新克隆仓库。
本文由作者按照
CC BY 4.0
进行授权
