You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何清理Git旧提交?保留仓库最近约20条提交的方法

如何只保留GitHub仓库的最近20条提交并删除旧提交

注意事项

  • 此操作会重写Git历史,如果是多人协作仓库,务必提前告知所有团队成员,避免代码冲突。
  • 操作前一定要备份仓库(比如本地复制一份克隆目录,或在GitHub上创建备份分支)。

具体步骤

  1. 克隆仓库到本地(如果还没克隆)

    git clone <你的仓库URL>
    cd <仓库目录名>
    
  2. 获取要保留的最早提交哈希值
    执行命令查看最近20条提交的精简日志:

    git log --oneline -n 20
    

    输出里最后一行的短哈希字符串(比如abc1234)就是你要保留的最旧提交的标识。

  3. 基于目标提交创建新的孤儿分支
    孤儿分支不会继承任何历史记录,只包含目标提交的内容:

    git checkout --orphan new-main <刚才获取的哈希值>
    

    (new-main是临时分支名,可自行修改)

  4. 提交当前状态到新分支

    git add -A
    git commit -m "保留最近20条提交的初始状态"
    
  5. 切换回原主分支(通常是main或master)

    git checkout main
    
  6. 重置原主分支到新分支的状态

    git reset --hard new-main
    
  7. 删除临时分支

    git branch -D new-main
    
  8. 强制推送到远程仓库
    因为重写了历史,必须用强制推送覆盖远程分支:

    git push -f origin main
    

协作成员同步操作

如果其他团队成员之前克隆过仓库,他们需要执行以下命令同步最新历史:

git fetch origin
git reset --hard origin/main

内容的提问来源于stack exchange,提问作者Sch8ill _

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 17:40:57