git加速仓库克隆与浅克隆后如何提交

多线程克隆

git可以开启多线程克隆,对于有多个子仓库的代码克隆,可以添加-j <线程数>参数加速克隆。如下面的例子,-j后的数字表示指定的线程数量

git clone 仓库地址 -j 3

浅克隆

参数--depth <深度>。其实就是历史记录被截断为指定提交次数的 ‘浅’ 克隆。示例如下

git clone --depth 1 仓库地址
这里表示只克隆历史记录中近一次的提交。

下面是一些例子。如--depth 1
在这里插入图片描述
--depth 2
在这里插入图片描述

子模块的浅克隆

加上--shallow-submodules参数就可以,加上后,如果仓库下有子模块,对于子模块的克隆也会浅克隆(子模块的使用感觉很鸡肋,提交很麻烦)

git clone --depth 1 --shallow-submodules 仓库地址

这几个参数是可以同时使用的,就不写例子了

浅克隆后的带来的无法提交的解决

对于浅克隆后的代码仓,是不能直接提交的,因为git的提交会有安全措施

我最常遇见的代码提交安全措施

1、如果上游分支的名称与本地分支不一致,推送将被中止
2、(没仔细看官方文档中如何描述)自己理解就是会对比本地分支与远程分支的一部分提交记录,如果相差太大,也会中止推送

方案

我这里给出的方案是进入到本地克隆下的仓库后,使用--unshallow参数,解释如下:

如果源仓库是完整的,将浅层资源库转换为完整的仓库,消除浅层仓库带来的所有限制。
如果源仓库是浅层的,尽可能多的获取,使当前仓库的历史与源仓库相同

git pull --unshallow 仓库地址 分支名

这时就可以提交了。应该还有其他解决方案。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值