git只拉取gitlab项目的特定目录

git只拉取gitlab项目的特定目录

一、需求引入

  话说我们有个爬取别人网站静态页,然后加工为自己所用的程序(python写的),这个程序放在我们的内网服务器上(win7系统):装有python3.7.9、代码编辑器:Visual Studio Code(非常好用,程序员的福音)

  架构图如下:

 

  简单说下整个流程,内网win7在系统任务计划的设置下,每天定时跑python程序,从别人的网站去拉数据,页面加工逻辑:有需要加载js才能处理的页面【处理起来相对较慢】,也有直接调接口返回数据【比较快】;处理好后会推送到gitlab项目上,该项目有好几个目录,线上服务器只需要拉取A.1的目录即可(都是些html文件),然后nginx转发到这个目录就能外网访问到这些静态页面了。

  这里主要说下第3步如何拉取某个项目下的特定目录的。

 

二、问题解决

1、gitlab上申请一个对这个项目只有reporter权限的用户,代表只能拉取,不能上传数据,记得提前把服务器的公钥放进去gitlab上。

2、创建作为本地仓库的文件夹,用来存放拉取的目录

mkdir local-static && cd local-static
git init

3、添加远程仓库地址,实现拉取remote的all objects信息

git remote add origin ssh://git@gitlab.example.com/项目名.git

4、开启sparse clone

git config core.sparsecheckout true

#注意是从项目名开始算的相对目录
echo "1级目录A/2级目录A.1" >> .git/info/sparse-checkout

5、查看确认

cat .git/info/sparse-checkout 

正确信息应该显示:1级目录A/2级目录A.1

6、指定master分支去拉取代码

git pull origin master
posted @ 2021-02-19 22:44  windysai  阅读(2481)  评论(0编辑  收藏  举报