一、前言
最近使用jenkins部署一個(gè)項(xiàng)目的時(shí)候,總是構(gòu)建失敗,卡在了git clone這一步驟,經(jīng)過一系列的分析,發(fā)現(xiàn)jenkins執(zhí)行g(shù)it clone時(shí),會(huì)先下載(或構(gòu)建).git文件的。
隨著項(xiàng)目提交的次數(shù)增多,特別是如果提交內(nèi)容里有大文件,會(huì)發(fā)現(xiàn).git文件越來越大
.git是一個(gè)隱藏文件,該文件夾存儲(chǔ)了 Git 倉庫的所有元數(shù)據(jù)和對象,包含:對象數(shù)據(jù)庫(Object Database)、分支和標(biāo)簽信息、配置信息、日志和歷史記錄、鉤子腳本(Hooks)等。
既然找到了導(dǎo)致jenkins構(gòu)建過慢或者失敗的病因,那該如何解決呢?
二、解決方式
方式一:壓縮減少.git文件的體積
可以使用Git提供的命令行工具將.git文件壓縮為更小的大小,運(yùn)行以下命令:
git gc --aggressive --prune=all
這將使用Git的垃圾收集機(jī)制來清理和壓縮不再使用的對象,并將不必要的歷史記錄從存儲(chǔ)庫中刪除,這可能會(huì)減小.git文件的大小。
也可以使用一些第三方工具清理和優(yōu)化Git存儲(chǔ)庫,例如:BFG Repo-Cleaner。
如果.git文件的大小主要是由于大型文件引起的,可以考慮從存儲(chǔ)庫中刪除這些文件或使用Git的LFS(Large File Storage)擴(kuò)展來處理大型文件,通過移除或外部存儲(chǔ)大文件,可以減小.git文件的大小。
方式二:淺克隆(推薦)
如果不需要存儲(chǔ)庫的完整歷史記錄,并且只對最新的提交和文件更改感興趣,可以使用Git的淺克隆(shallow clone)功能來減小.git文件的大小,運(yùn)行以下命令(--depth表示只需要最后1條記錄):
git clone --depth 1 -b 分支 倉庫地址
這將只克隆最新的提交和文件,而不會(huì)復(fù)制完整的歷史記錄。
那么對應(yīng)jenkins是這樣配置的,首先打開項(xiàng)目的Git配置部分,找到“Additional Behaviors”(附加行為)選項(xiàng),并點(diǎn)擊“Add”(添加)按鈕,選擇“Advanced clone behaviours”:
然后配置Shallow clone,depth為1即可:
鏈接:https://blog.csdn.net/qq_20042935/article/details/131422066
審核編輯:劉清
-
存儲(chǔ)器
+關(guān)注
關(guān)注
38文章
7653瀏覽量
167488
原文標(biāo)題:提升jenkins構(gòu)建效率(解決git文件過大的問題)
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
通過Jenkins提供的啟動(dòng)參數(shù)禁用殺死子進(jìn)程的方法
Jenkins用戶界面的相關(guān)資料分享
jenkins是什么?有何應(yīng)用
Jenkins遠(yuǎn)程部署Linux服務(wù)器的過程
jenkins有什么用_jenkins如何自動(dòng)部署

Jenkins詳細(xì)安裝與構(gòu)建部署使用教程

Jenkins是什么_Jenkins常用功能_jenkins的使用總結(jié)

部署Jenkins服務(wù)時(shí)如何保障服務(wù)的高可用性呢?
基于Jenkins+GitLab+Maven實(shí)現(xiàn)代碼自動(dòng)打包編譯發(fā)布

永磁同步電機(jī)效率提升方法
Jenkins 與 SonarQube 集成部署,自動(dòng)化代碼質(zhì)量監(jiān)控

基于 Docker 與 Jenkins 實(shí)現(xiàn)自動(dòng)化部署

Jenkins的安裝教程

評論