只拉取Git仓库的部分目录内容

在某些场合下,我们的Git仓库会很大。相信我,这个世界这么大,总会有些人喜欢把所有部门的文件都放在一个仓库里。美术的地图,3d模型,客户端的代码,服务器的工程,等等等等。动辄以G计算的硬盘空间,既耗时也耗硬盘。 所以我们可以只克隆和拉取我们关心的部分目录年内容,避免拉取其他目录。 Git官方对这种行为的名称叫做:稀疏检出(sparse checkout)。

稀疏检出的行为主要依赖两个:

  • core.sparsecheckout属性要配置为true
  • 通过.git/info/sparse-checkout文件来配置针对什么样的目录

下面我们举个栗子: 比如我们想在一个新目录下克隆仓库,快速开展实际工作

步骤1:初始化空白仓库

mkdir client_code
cd client_code/
git init

步骤2 : 拉取remote的all objects信息(替换成自己的库地址)

git remote add -f origin http://kktoo@192.168.1.1:90/fc.git

步骤3:开启sparse clone属性

git config core.sparsecheckout true

步骤4:配置指定目录

这部分工作主要是针对配置文件,文件路径为.git/info/sparse-checkout 可以用任意一种文本编辑方式进行编辑。 详细的配置规则可以查看官方文档或相关资料,这里列出几种常用写法:

一级目录 A.如果目录名称前带斜杠,如/docs/,将只匹配项目根目录下的docs目录 B.如果目录名称前不带斜杠,如docs/,其他目录下如果有同名目录,也会包括进来

多级目录 如docs/chapter1/,则不管前面是否带有斜杠,都只匹配项目根目录下的目录,如client/docs/chapter1/是不能被匹配的

通配符 比如docs/index. 比如.png

排除模式 比如不拉取docs目录

!/docs/

步骤5:拉取指定目录下的文件

git pull origin master

其他切换分支等等操作没有区别

© kktoo.com 2019 all right reserved,powered by Gitbook该文件修订时间: 2020-12-28 16:42:11

results matching ""

    No results matching ""