01 引言
最近使用 jenkins
部署一个项目的时候,总是构建失败,卡在了git clone
这一步骤,经过一系列的分析,发现jenkins
执行git clone
时,会先下载(或构建).git
文件的。
随着项目提交的次数增多,特别是如果提交内容里有大文件,会发现.git
文件越来越大
.git
是一个隐藏文件,该文件夹存储了 Git 仓库的所有元数据和对象,包含:对象数据库(Object Database)、分支和标签信息、配置信息、日志和历史记录、钩子脚本(Hooks)等。
既然找到了导致jenkins构建过慢或者失败的病因,那该如何解决呢?
02 解决方式
2.1 方式1 - 压缩减小.git文件体积
可以使用Git
提供的命令行工具将.git
文件压缩为更小的大小,运行以下命令:
git gc --aggressive --prune=all
这将使用Git
的垃圾收集机制来清理和压缩不再使用的对象,并将不必要的历史记录从存储库中删除,这可能会减小.git
文件的大小。
也可以使用一些第三方工具清理和优化Git存储库,例如:BFG Repo-Cleaner。
如果.git
文件的大小主要是由于大型文件引起的,可以考虑从存储库中删除这些文件或使用Git
的LFS(Large File Storage)
扩展来处理大型文件,通过移除或外部存储大文件,可以减小.git
文件的大小。
2.1 方式2 - 使用浅克隆(推荐)
如果不需要存储库的完整历史记录,并且只对最新的提交和文件更改感兴趣,可以使用Git的浅克隆(shallow clone
)功能来减小.git
文件的大小,运行以下命令( --depth
表示只需要最后1条记录):
git clone --depth 1 -b 分支 仓库地址
这将只克隆最新的提交和文件,而不会复制完整的历史记录。
那么对应jenkins
是这样配置的,首先打开项目的Git配置部分,找到“Additional Behaviors
”(附加行为)选项,并点击“Add
”(添加)按钮,选择“Advanced clone behaviours
”:
然后配置Shallow clone,depth为1即可:
03 文末
经过上述的配置,可以看到jenkins
的构建速度明显加快了,希望能帮助到大家,谢谢大家的阅读,本文完!