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

简介: 克隆(clone)整个仓库是使用 Git 的标准操作过程。每个克隆通常包括存储库中的所有内容

如何使用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 完全覆盖您的历史记录。但小心点。这将破坏您的本地未推送修改。

相关文章
|
人工智能 IDE Java
全面开测:AI智能编码辅助工具通义灵码
全面开测:AI智能编码辅助工具通义灵码
64149 7
全面开测:AI智能编码辅助工具通义灵码
|
Linux Python
Linux 升级安装 Python 3
Linux 升级安装 Python 3
194 2
|
Linux Python Windows
在终端怎么升级python
Windows上,使用`Win+R`打开命令行,运行`cmd`,然后用`python -m ensurepip --upgrade`更新pip。通常需从官网下载安装新版本Python。验证版本用`python --version`。 Mac/Linux,打开终端,用`conda update python`(Anaconda/Miniconda环境)或手动下载安装新版本。 验证版本:`python3 --version`或`python --version`。
435 9
|
敏捷开发 测试技术 API
阿里云云效产品使用合集之调用API次数过多导致限流,该怎么办
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
SQL Oracle 关系型数据库
实时计算 Flink版操作报错之遇到设置之后报错:java.sql.BatchUpdateException: ORA-01461:,如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
JSON 前端开发 JavaScript
【Web 前端】深克隆和浅克隆?
【4月更文挑战第22天】【Web 前端】深克隆和浅克隆?
|
开发者 Python
Python的os模块详解
Python的os模块详解
269 0
|
存储 关系型数据库 分布式数据库
云栖大会|云原生数据库PolarDB:向云原生纵深发展
持续推动以PolarDB为代表的云数据库向云原生纵深发展
云栖大会|云原生数据库PolarDB:向云原生纵深发展
|
存储 安全 Devops
爆测一周!22年必看最细致代码托管工具测评
网上代码托管选型的文章不少,不过大多内容有点久远,很多最新的平台没有包括进来,个人花了大概一个星期的时间,把目前市面上比较火的代码托管平台(开源托管平台:Github、Gitee;企业级托管平台:Gitlab、阿里云效Codeup、 腾讯Coding)做了一些比较,比较的维度包括速度、成本、产研工具链完整性、安全、统计报表等,希望可以帮助正在进行代码托管选型的技术同行做决策选型。
1945 0
爆测一周!22年必看最细致代码托管工具测评