当前位置:   article > 正文

代码浅克隆_git 浅克隆

git 浅克隆

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

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

上面的命令,就是只对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'
  • 1
2.2、 下载远程分支最近N笔提交记录
git fetch --depth 100 origin dev.5.3.RB-new
  • 1
2.3、 本地仓库切换到对应分支
git checkout dev.5.3.RB-new
  • 1

注意:若切回原分支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'
  • 1
  • 2

这个时候,你使用命令去修改远程分支链接,会提示失败的。只能直接去修改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
  • 1
  • 2
  • 3

主要是修改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
  • 1
  • 2
  • 3
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/407574
推荐阅读
相关标签
  

闽ICP备14008679号