如何清理Git旧提交?保留仓库最近约20条提交的方法
如何只保留GitHub仓库的最近20条提交并删除旧提交
注意事项
- 此操作会重写Git历史,如果是多人协作仓库,务必提前告知所有团队成员,避免代码冲突。
- 操作前一定要备份仓库(比如本地复制一份克隆目录,或在GitHub上创建备份分支)。
具体步骤
克隆仓库到本地(如果还没克隆)
git clone <你的仓库URL> cd <仓库目录名>获取要保留的最早提交哈希值
执行命令查看最近20条提交的精简日志:git log --oneline -n 20输出里最后一行的短哈希字符串(比如
abc1234)就是你要保留的最旧提交的标识。基于目标提交创建新的孤儿分支
孤儿分支不会继承任何历史记录,只包含目标提交的内容:git checkout --orphan new-main <刚才获取的哈希值>(
new-main是临时分支名,可自行修改)提交当前状态到新分支
git add -A git commit -m "保留最近20条提交的初始状态"切换回原主分支(通常是
main或master)git checkout main重置原主分支到新分支的状态
git reset --hard new-main删除临时分支
git branch -D new-main强制推送到远程仓库
因为重写了历史,必须用强制推送覆盖远程分支:git push -f origin main
协作成员同步操作
如果其他团队成员之前克隆过仓库,他们需要执行以下命令同步最新历史:
git fetch origin git reset --hard origin/main
内容的提问来源于stack exchange,提问作者Sch8ill _
相关产品推荐
相关产品推荐

