因為要做數據庫自動更新,需要拉取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 = 0filemode = truebare = falselogallrefupdates = truesymlinks = falseignorecase = truesparsecheckout = true
[remote "origin"]url = http://git.xxxxx.com/xxxx/xxxx.gitfetch = +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