代码浅克隆

当代码仓库比较大的时候,我们直接克隆整个仓库,会失败。
其实仓库大,不一定就是代码多造成的,而是由于分支多、提交历史多导致的。这个时候需要使用浅克隆来分阶段、分需求来拉取代码。

1、使用浅克隆拉取指定分支的前N笔提交记录:
git clone --depth 2 -b dev.5.2.RB SSH://....../.git

上面的命令,就是只对SSH://…/.git这个代码仓库的 dev.5.2.RB 分支的前面2笔提交做了克隆。虽然提交历史只有前面2笔提交,但分支里面的代码是完整的、最新的。

2、克隆其他分支

如果本地已经拉取了分支 dev.5.2.RB 前面2笔代码,这个时候需要拉取另外一个远程分支 dev.5.3.RB-new 的代码,那么需要做如下几步:

2.1、 本地仓库设置追踪远程分支 dev.5.3.RB-new
git remote set-branches origin 'dev.5.3.RB-new'
2.2、 下载远程分支最近N笔提交记录
git fetch --depth 100 origin dev.5.3.RB-new
2.3、 本地仓库切换到对应分支
git checkout dev.5.3.RB-new

注意:若切回原分支dev.5.2.RB分支无法pull代码,需要设置一下远程仓库取重新追踪对应的远程分支。

3、强制修改远程关联分支

当我们在执行git remote set-branches的时候,如果不小心关联了一个根本不存在的分支名称,后续就可能会引发一系列远程操作的错误,报如下错误:

yangyunsheng@yangyunengdeMBP demo % git remote set-branches origin demo-branches
fatal: invalid refspec '+refs/heads/HEAD:refs/for/demo-branches:refs/remotes/origin/HEAD:refs/for/demo-branches'

这个时候,你使用命令去修改远程分支链接,会提示失败的。只能直接去修改Git的配置文件,具体是编辑 .git/config 文件中的[remote] 部分,原来错误文件内容如下:

[remote "origin"]
	url = ssh://yangyunsheng@icode.factory.com:8235/factory/iov-sz/demo
	fetch = +refs/heads/HEAD:refs/for/demo-branches:refs/remotes/origin/HEAD:refs/for/demo-branches

主要是修改fetch对应的值,它的匹配规则是+refs/heads/< branch-name > : < local-branch-name >。
因此我这里应该修改成如下的值:

[remote "origin"]
	url = ssh://yangyunsheng@icode.factory.com:8235/factory/iov-sz/demo
	fetch = +refs/heads/demo-branches:refs/remotes/origin/demo-branches
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值