美文网首页 iOS进阶之Git
Git远程文件较大,如何顺利拉取代码?

Git远程文件较大,如何顺利拉取代码?

作者: 天蓬大元 | 来源:发表于2019-06-25 10:06 被阅读12次

原理

读过《Pro Git》这本书的同学,应该对Git文件存储方式有一定的了解。如果一个项目存在时间较久,期间不可避免的要创建很多的分支并且有相当可观的代码提交历史。
此时,如果直接clone下来整个仓库。将包含所有的提交记录。其体积是相当可观的。至于为什么超过1G就难以clone。我暂时也不清楚原理。有知道的同学欢迎留言。
那解决方式就是先下载一部分,然后根据需要看是否要将其他部分也下载放在本地。
代码如下:
git clone --depth 1 https://github.com/dogescript/xxxxxxx.git
depth:深度。顾名思义,就是分支的提交记录。后面是1,就是只下载最近一次提交代码的分支的最近一条记录。用log查看只能看到一条提交记录。
隐藏的一层意思是:最近一次有提交记录的分支。只会下载这一个分支的代码,并且只同步最近一次的提交。这样,整个下载的文件就小了很多。根据经验,绝不会超过1G。否则,说明你的代码库文件太多了。
好。现在代码拉下来了。
但这个分支不一定是你需要的分支,怎么办呢?
此时你需要切换到你需要的分支上去。
代码如下:
$ git remote set-branches origin 'remote_branch_name'
$ git fetch --depth 1 origin remote_branch_name
$ git checkout remote_branch_name
remote_branch_name:远程分支的名字。
这样,你就可以任意从远端拉去分支代码了。

但:分支的log,无论是之前的分支,还是新拉取的分支,都只有一条提交记录。那么你想查看多条要怎么办呢?

git fetch --unshallow
如果源存储库已完成,请将浅存储库转换为完整存储库,从而消除浅存储库所施加的所有限制。
如果源存储库很浅,则尽可能多地获取,以便当前存储库与源存储库具有相同的历史记录。
然而,这个会去拉取所有的记录。可想而知,如果所有的记录可以同步下来,我们也就不用这样折腾了。所以,此时用这个命令解决不了问题。
当然,如果情况是你先获取了远端库的一部分,想全部同步过来,且整个库体积不大。这个方法可以用来同步所有的记录。
git fetch --depth=100
从远端抓取100条提交记录。如果不够,可以适当调整条数,但注意,不可过大。避免又发生体积过大而操作不成功的问题。
讲明白了,这里抓取的是当前分支的100条记录。。
其实一旦项目有几年的历史,其实你几乎不会再需要项目前期的那些记录。那些远古记录要不要拉取到本地其实没影响。所以,这种方式,并没有什么副作用的。放心用。。

相关文章

  • Git远程文件较大,如何顺利拉取代码?

    原理 读过《Pro Git》这本书的同学,应该对Git文件存储方式有一定的了解。如果一个项目存在时间较久,期间不可...

  • 【Git】基本操作

    一、拉取代码 1. 拉取指定分支代码 git clone -b [URL] 2. 拉取远程仓库代码(拉取远程仓库代...

  • git篇之pull

    拉取远程代码git pull git pull //从远程主分支拉取最新的代码 自动merge所以可能会产生冲突 ...

  • git分支命令行(建立分支,删除分支)

    克隆远程分支代码git clone -b branchName address 拉取远程分支代码git pull ...

  • git用命令行提交代码及解决冲突

    git pull, 提交之前先拉取远程代码, 如果在本地代码与远程代码有冲突, 会有CONFLICT, 拉取失败 ...

  • git 常用操作

    git 忽略已提交至上游的文件 git 放弃本地修改强制拉取远程代码 git 删除Untracked file g...

  • 同步同事提交的git代码到本地

    git拉取远程分支文件 拉取远程分支 git fetch <远程主机名> <分支名> 取回更新并在本地创建新的分支...

  • git 学习笔记

    拉取远程代码 1 git init 2 git remote add origin '远程分支地址' 3 git ...

  • GIT使用

    从一个新仓库拉取代码开始开发 拉取远程仓库代码从远程拉取源代码到本地 git clone <仓库地址>此操作会在当...

  • 常用的git 命令、git命令行

    1.拉取代码 1.1 拉取当前默认分支的代码: git pull. 1.2 拉取某个远程分支(master)的代码...

网友评论

    本文标题:Git远程文件较大,如何顺利拉取代码?

    本文链接:https://www.haomeiwen.com/subject/dovzqctx.html