Git拉取某个仓库中指定的子文件夹
例: 拉取grpc-go仓库的balancer子目录
╭─user@user ~/Workspace
╰─$ mkdir pull-specified-subfolder
╭─user@user ~/Workspace
╰─$ cd pull-specified-subfolder
╭─user@user ~/Workspace/pull-specified-subfolder
╰─$ git init
Initialized empty Git repository in /home/user/Workspace/pull-specified-subfolder/.git/
╭─user@user ~/Workspace/pull-specified-subfolder ‹master›
╰─$ git config core.sparsecheckout true
╭─user@user ~/Workspace/pull-specified-subfolder ‹master›
╰─$ git remote add origin git@github.com:grpc/grpc-go.git
╭─user@user ~/Workspace/pull-specified-subfolder ‹master›
╰─$ echo "/balancer/*" >> .git/info/sparse-checkout
╭─user@user ~/Workspace/pull-specified-subfolder ‹master›
╰─$ git pull origin master
remote: Counting objects: 10963, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 10963 (delta 1), reused 0 (delta 0), pack-reused 10960
Receiving objects: 100% (10963/10963), 4.52 MiB | 160.00 KiB/s, done.
Resolving deltas: 100% (6978/6978), done.
From github.com:grpc/grpc-go
* branch master -> FETCH_HEAD
* [new branch] master -> origin/master
╭─user@user ~/Workspace/pull-specified-subfolder ‹master›
╰─$ tree
.
└── balancer
├── balancer.go
├── base
│ ├── balancer.go
│ └── base.go
└── roundrobin
├── roundrobin.go
└── roundrobin_test.go
3 directories, 5 files
参考链接: Is it possible to do a sparse checkout without checking out the whole repository first? & sparse checkout