因为要做数据库自动更新,需要拉取Gitlab项目中/bm-server-biz/docs目录下的表更新sql文件,其他的都不需要,这时候可以利用git的“sparse checkout”方法(设置稀疏检出)来实现。
1、在项目目录下git 初始化
[root@xcc-demo-113-160 lsntest]# git init
已初始化空的 Git 仓库于 /home/lsntest/.git/
[root@xcc-demo-113-160 lsntest]# ls
[root@xcc-demo-113-160 lsntest]# ls -a
. .. .git
2、修改.git文件夹里面的 config 文件
.git/config
,启用 sparse checkout(稀疏检出)
[root@xcc-demo-113-160 .git]# cat config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
sparsecheckout = true
[remote "origin"]
url = http://git.xxxxx.com/xxxx/xxxx.git
fetch = +refs/heads/*:refs/remotes/origin/*
3、在 .git/info 创建 sparse-checkout 文件,在文件里面指定需要拉取的目录或内容
[root@xcc-demo-113-160 info]# cat sparse-checkout
/bm-server-biz/docs/表变更update.sql
4、开始拉取 git pull (第一次需要输入账号密码)
[root@xcc-demo-113-160 lsntest]# git pull
remote: Enumerating objects: 106, done.
remote: Counting objects: 100% (106/106), done.
remote: Compressing objects: 100% (71/71), done.
remote: Total 4636 (delta 24), reused 90 (delta 19), pack-reused 4530
接收对象中: 100% (4636/4636), 351.05 MiB | 54.81 MiB/s, 完成.
处理 delta 中: 100% (2220/2220), 完成.
来自 git.bm.com:bm/bm-api-server
* [新分支] master -> origin/master
* [新分支] bug_801 -> origin/bug_801
* [新标签] v0.1 -> v0.1
或者通过bash执行命令:
git init
git config core.sparsecheckout true
git remote add origin 仓库地址
echo 文件目录 >> .git/info/sparse-checkout
git pull origin master
版权归原作者 论如何成为一个优秀的码农 所有, 如有侵权,请联系我们删除。