git submodule的简单使用

项目中经常会使用到第三方的 git 库,直接把第三方的版本库合并到自己的库中。

目前做Node.js Koa2 时需要使用工程集成的Mongodb Models文件,所以需要将Koa2工程引用外部工程模块。

创建2个Git代码仓库。以下为例:

1.1 JS仓库:Test_git 

1.2 Models仓库:Model

创建完两个仓库。

//获取代码至本地
git clone git@github.com:dlw1398287387/Test_git.git
//进入项目
cd Test_git
//引入外部工程模块
git submodule add git@github.com:dlw1398287387/Model.git

此时查看Test_git工程目录里面会多一个Model目录跟一个.gitmodules 文件。(到这里两个项目关联成功)。这里Test_git工程中的Model文件会关联 Model外部模块工程的Commit ID。

更新Model工程模块

1.1 修改Model中的文件,必须上传至Git更新 Commit ID 。

git add . 

git commit -m ''

git push 

更新Test_git

1.1 如果Model文件有更新,Test_git必须获取最新的Model Commit ID关联。否则Model 不会引用最新的Model模块文件。

方法一
cd project2

git pull

git submodule update



方法二
cd project/module

git checkout master

cd ..

git submodule foreach git pull

cd ..


1.2 将Test_git最新的工程上传至Github,以便保存关联的Commit ID。

部署

//获取Test_git代码工程
git clone git@github.com:dlw1398287387/Test_git.git
//注意第一次获取Test_git代码工程时Model文件夹里面不会有外部模块,需要重新更新,还需要执行下行
git submodule init && git submodule update


//替代
#下面这一句的效果和上面两条命令的效果是一样的,多加了个参数  `--recursive`
git clone git@github.com:dlw1398287387/Test_git.git --recursive

使用PM2 自动部署时

deploy : {
    production : {
      user : 'ubuntu',
      host : ['localhost'],
      ref  : 'origin/master',
      repo : 'git@github.com:dlw1398287387/Test_git.git',
      path : '/home/ubuntu/service/',
      ssh_options: ['ForwardAgent=yes', "PasswordAuthentication=no"],
      'post-deploy' : 'git submodule update --init --recursive && yarn && pm2 reload ecosystem.config.js --env production'      
    },
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值