25 如何使用脚本从 Git 历史记录中删除大文件集
如何使用脚本从 Git 历史记录中删除大文件
在 Git 项目开发过程中,有时可能因为误操作将不必要的大文件提交到仓库中,这些大文件会导致仓库体积增大,甚至影响性能。本篇文章将介绍一个 Bash 脚本,帮助你轻松从 Git 历史记录中完全删除大文件。
脚本功能
- 批量删除: 支持删除多个大文件。
- 彻底清理: 包括历史记录和引用日志中的残留。
- 仓库优化: 使用垃圾回收压缩数据,降低仓库大小。
脚本代码
替换word-attack
为你的删除大文件文件夹路径
#!/bin/bash
# List of large files to remove
files=("word-attack")
for file in "${files[@]}"; do
git filter-branch --tree-filter "rm -f $file" HEAD
done
# Clean up
rm -rf .git/refs/original/
git reflog expire --expire=now --all
git gc --prune=now --aggressive
使用步骤
-
创建脚本文件:
- 新建文件
remove_large_files.sh
,将上述代码复制粘贴进去。
- 新建文件
-
赋予执行权限:
chmod +x remove_large_files.sh
-
运行脚本:
./remove_large_files.sh
注意事项
- 备份仓库: 执行
git filter-branch
操作前,建议备份整个仓库,以防误操作导致数据丢失。 - 影响范围: 该脚本会修改所有历史记录,修改后的仓库需强制推送(
git push --force
)到远程。 - 避免协作冲突: 删除历史后,其他开发者需重新克隆仓库以避免冲突。
通过上述脚本,你可以轻松高效地清理 Git 历史记录中的大文件,为项目瘦身!
No next page