如何使用Git浅克隆来提升性能

如何使用Git浅克隆来提升性能

克隆(clone)整个仓库是使用 Git 的标准操做过程。每一个克隆一般包括存储库中的全部内容。git

这意味着克隆时,不只会获得文件,还会获得曾经提交的每一个文件的每一个修订版本,以及每次提交的历史记录。并且,若是您的代码库里有不少资产,那将包含很长的历史。主要问题是,这将在持续集成(CI)管道中形成瓶颈。github

查看 github.com 等代码库的优化项目,常常须要把代码完成克隆下来,越是星多的项目,代码量越大,历史也可能越长,在国内网络很差的状况下,常常下载若干GB之后,断网。一旦中断,没法续传,又得从头开始,苦不堪言。服务器

固然能够经过下载zip/gz发行源码包来完成,但若是想参与项目开发,这个方案就不可行了。网络

解决方案:Git浅克隆

Git浅表克隆可以让您仅获取最新的提交,而不是整个回购历史记录。所以,若是您的项目具备多年的历史记录或数千次提交的历史记录,则能够选择一个特定的深度进行提取。性能

如何执行Git浅克隆

在git clone命令中提供--depth 1的参数,以仅复制仓库的最新版本:优化

git clone -–depth [depth] [remote-url]

您还可使用git浅克隆访问单个分支:url

git clone [远程URL] --branch [名称] --single-branch [文件夹]

使用git浅克隆,您能够得到更少的文件。能够快速完成克隆、构建和反馈,能够更快地交付。code

解决方案:彻底删除不须要的历史记录

若是您不须要维护完整的历史记录,则可使用如下命令集从Git存储库中彻底删除历史记录。将存储库克隆到工做站上的路径后,请使用 --orphan 选项,该选项只需一次提交便可将其返回到init状态。ip

如何修剪您的存储库

git checkout --orphan freshBranch 
git add -A git commit 
git branch -D master 
git branch -m master 
git push -f origin master 
git gc --aggressive --prune = all  
git push -f origin master

在路径中添加全部文件并提交。接下来,删除远程主分支,将当前分支重命名为 master。而后,将新的主服务器强制推入代码托管环境。最后,使用prune命令删除全部旧文件,而后将新状态推送到远程。开发

经过修剪您的存储库,能够提升克隆性能,而无需使用git浅克隆。消除不须要的历史记录能够减轻您的存储库的负担,从而使交付速度更快。

是否要重置本地存储库?您还可使用 git force clone 彻底覆盖您的历史记录。但当心点。这将破坏您的本地未推送修改。

相关文章
相关标签/搜索