git 拉取项目指定目录或者指定文件

因为要做数据库自动更新,需要拉取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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值