删除已经commit的大文件

你可以用如下命令彻底从 Git 历史中移除 videos 下的所有文件(包括所有分支和历史),并让仓库变小:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 1. 用 filter-branch 移除所有历史中的 web/static/videos 下的文件
git filter-branch --index-filter "git rm -r --cached --ignore-unmatch web/static/videos" -- --all

# 2. 删除 filter-branch 产生的备份引用和日志
rm -rf .git/refs/original
rm -rf .git/logs/

# 3. 垃圾回收和清理不可达对象
git gc
git prune

# 4. 强制推送到远程(如果有远程仓库)
git push --force --all
git push --force --tags

注意事项: - 这会重写所有分支历史,所有协作者都需要重新 clone 或强制同步。 - 操作前请备份你的仓库。 - .gitignore 里建议保留 web/static/videos/*,防止以后误加大文件。

这样可以彻底清理 videos 下的所有文件及其历史记录。


删除已经commit的大文件
https://jfsas.github.io/2025/04/30/删除已经commit的大文件/
作者
JFSAS
发布于
2025年4月30日
许可协议