共计 1091 个字符,预计需要花费 3 分钟才能阅读完成。
如何应用 Git 浅克隆来进步性能
克隆(clone)整个仓库是应用 Git 的规范操作过程。每个克隆通常包含存储库中的所有内容。
这意味着克隆时,不仅会失去文件,还会失去已经提交的每个文件的每个订正版本,以及每次提交的历史记录。而且,如果您的代码库里有很多资产,那将蕴含很长的历史。次要问题是,这将在继续集成(CI)管道中造成瓶颈。
查看 github.com 等代码库的优化我的项目,常常须要把代码实现克隆下来,越是星多的我的项目,代码量越大,历史也可能越长,在国内网络不好的状况下,常常下载若干 GB 当前,断网。一旦中断,无奈续传,又得从头开始,苦不堪言。
当然能够通过下载 zip/gz 发行源码包来实现,但如果想参加我的项目开发,这个计划就不可行了。
解决方案:Git 浅克隆
Git 浅表克隆可让您仅获取最新的提交,而不是整个回购历史记录。因而,如果您的我的项目具备多年的历史记录或数千次提交的历史记录,则能够抉择一个特定的深度进行提取。
如何执行 Git 浅克隆
在 git clone 命令中提供 –depth 1 的参数,以仅复制仓库的最新版本:
git clone -–depth [depth] [remote-url]
您还能够应用 git 浅克隆拜访单个分支:
git clone [近程 URL] --branch [名称] --single-branch [文件夹]
应用 git 浅克隆,您能够取得更少的文件。能够疾速实现克隆、构建和反馈,能够更快地交付。
解决方案:齐全删除不须要的历史记录
如果您不须要保护残缺的历史记录,则能够应用以下命令集从 Git 存储库中齐全删除历史记录。将存储库克隆到工作站上的门路后,请应用 --orphan
选项,该选项只需一次提交即可将其返回到 init 状态。
如何修剪您的存储库
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
齐全笼罩您的历史记录。但小心点。这将毁坏您的本地未推送批改。