一个计算机技术爱好者与学习者

0%

好好学Git:Git项目瘦身

1. 前言

在使用Git进行版本控制时,随着时间的推移,.git目录可能会变得庞大,导致存储空间浪费和性能下降。
本文将学习一些Git项目瘦身方法,以便压缩.git目录。

2. git垃圾回收

git gc(垃圾回收)是Git提供的一个命令,用于清理和压缩 .git 目录中的文件。
它会自动删除不再需要的对象,并合并多个文件以节省空间。

注意:该命令仅适用于本地项目清理,不能推到远程项目,对远程项目并没有影响。

3. 删除大文件

如果Git仓库中包含一些大文件,可以使用git filter-repo工具来删除这些文件。

1、安装 git-filter-repo 工具

1
pip install git-filter-repo

2、生成文件大小报告,并查看

1
2
git filter-repo --analyze
head .git/filter-repo/analysis/path-all-sizes.txt

3、删除所有大于10MB的文件

1
git filter-repo --strip-blobs-bigger-than 10M

注意:执行该命令后,所有commit记录的hash值都会被重写。

4、再次生成文件大小报告,并查看

1
2
3
rm -rf .git/filter-repo/analysis
git filter-repo --analyze
head .git/filter-repo/analysis/path-all-sizes.txt

5、推送到远程

1
git push -f

4. 压缩历史记录

通过重写历史记录,可以减少提交数量,从而减小.git目录的大小。

1
git rebase -i HEAD~n

git rebase更详细的使用方法,请参考文档 《好好学Git:Git提交后变更》

5. 删除分支

定期检查并删除不再需要的分支,可以有效减少.git目录的大小。

1
2
3
4
5
# 删除本地分支
git branch -d branch_name

# 删除远程分支
git push origin --delete branch_name

6. 使用 .gitignore

确保在项目中使用.gitignore文件,避免将不必要的文件(如临时文件、编译产物等)添加到版本控制中,可以防止.git目录膨胀。

对于已经track的文件,使用 .gitignore 是无法忽略的。
解决办法是先删除本地缓存,然后推送到远程仓库。详细操作方法参考文档 《好好学Git:gitignore用法》

  • 本文作者: 好好学习的郝
  • 原文链接: https://www.voidking.com/dev-make-git-thinner/
  • 版权声明: 本文采用 BY-NC-SA 许可协议,转载请注明出处!源站会即时更新知识点并修正错误,欢迎访问~
  • 微信公众号同步更新,欢迎关注~