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

Git如何移除1年以上提交以释放本地及远程仓库空间?

移除Git仓库中12个月以上的提交并释放存储空间

针对你的单分支、单开发者场景,最简便可靠的方案是用git filter-repo重写Git历史,只保留最近12个月的提交,再清理冗余数据。以下是具体步骤:

准备工作

  1. 先备份整个本地仓库文件夹——重写历史是不可逆操作,别拿生产仓库直接试。
  2. 确保本地没有未提交的变更,执行git stash暂存,或者提交所有修改。
  3. 安装git filter-repo:
    • Ubuntu/Debian:sudo apt install git-filter-repo
    • macOS:brew install git-filter-repo
    • 其他系统可通过pip安装:pip install git-filter-repo

重写历史保留最近12个月提交

直接用git filter-repo的时间筛选功能,自动保留指定日期之后的所有提交:

git filter-repo --since="12 months ago"

这个命令会彻底移除12个月前的所有提交、历史对象,只保留最近一年的提交记录。

清理本地冗余数据

重写历史后,执行Git垃圾回收彻底释放空间:

git gc --aggressive --prune=now

执行完可以用du -sh .git查看.git文件夹大小,确认空间已释放。

更新远程仓库

因为历史被重写,需要强制推送到GitHub:

git push --force origin main  # 替换main为你的分支名

同步Webhook服务器

服务器拉取时会因为历史不匹配报错,需要在服务器上执行:

git fetch origin main
git reset --hard origin main  # 强制重置到远程最新版本

注意事项

  • GitHub会在一段时间后自动清理旧的仓库对象,远程仓库的存储空间会逐步释放,无需手动操作。
  • 因为是单开发者单分支,强制推送不会影响其他人,但如果之后有协作需求,要提前告知其他开发者重新克隆仓库。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 00:10:40