使用git协同开发并实现自动化部署
一、创建GIT项目
1.这里使用国内的码云创建项目:码云
2.这里是否开源我们选择私有
二、克隆到本地
请先在本地环境安装好 git 工具,并能正常使用 git 命令
- 通过
git clone https://gitee.com/bignius/demo_project
命令克隆项目到本地,这里的https://gitee.com/bignius/demo_project
改成你的仓库地址
- 如果你已经有现有项目,可克隆到本地后把之前的代码复制到克隆的目录下
- 输入
cd demo_project
进入目录
- 克隆下来后默认是master分支,当前分支为主分支,我们可以把线上发布的配置写到该分支上
三、在master分支编写主要代码
这里我就使用
新建文件
来演示开发流程
在克隆下来的目录下新建两个文本文件:
数据库配置.txt
、业务逻辑.txt
- 编辑
数据库配置.txt
,输入数据库配置
url:192.168.1.101
user:root
pass:123123
- 编辑
业务逻辑.txt
,输入业务逻辑
小明走了10公里
- 提交修改
- 输入
git add .
提交所有修改- 输入
git commit -m "first commit"
提交修改并输入备注first commit
- 输入
git push
推送到 git 服务器- 这里我们就已经完成了最基本的推送到git服务器了
四、创建开发分支develop并切换
- 输入
git branch develop
创建开发分支- 输入
git checkout develop
切换分支
- 修改
数据库配置.txt
文件
url:192.168.1.102
user:develop
pass:123456
- 修改
业务逻辑.txt
文件
小明走了10公里
小红也走了10公里
五、提交develop分支修改
- 提交develop分支修改
- 输入
git add .
提交所有修改- 输入
git commit -m "first commit"
提交修改并输入备注first commit
- 输入
git push --set-upstream origin develop
推送到指定的develop
分支下- 完成后就推送到
develop
分支下了
六、一个阶段开发完成,合并分支并解决冲突并提交
- 输入
git checkout master
切换回master
分支下- 输入
git merge develop
合并分支- 这里合并后我们会发现数据库配置文件被修改了,我们需要手动修改回之前的配置(第一次合并我们需要手动修改下,后续合并我们就不用修改了)
修改完成后我们master分支下的两个文件内容分别是
数据库配置.txt
url:192.168.1.101
user:root
pass:123123
业务逻辑.txt
小明走了10公里
小红也走了10公里
- 提交此次开发的内容
输入git add .
提交所有修改
输入git commit -m "dev merge"
提交修改并输入备注"dev merge"
输入git push
推送到git服务器的master分支下
七、后续合并
由于我们修改了
master
分支下数据库配置.txt
文件,假如后续继续在develop
分支下开发新的业务逻辑,开发完成后进行合并develop
分支时会出现
冲突,下面我们就来解决这个冲突
- 我们现在切换到
develop
分支下进行业务逻辑的修改
- 输入
git checkout develop
切换到develop
分支- 修改
业务逻辑.txt
文件,添加小刘今天走了20公里
业务逻辑.txt
小明走了10公里
小红也走了10公里
小刘今天走了20公里
- 提交此次更改
输入git add .
提交所有修改
输入git commit -m "dev two"
提交修改并输入备注"dev two"
输入git push
推送到git服务器的dev分支下
- 切换回
master
分支进行合并
输入git checkout master
切换到master
分支下
输入git merge develop
合并分支
- 如果出现下图,直接按
ctrl+x
退出即可合并- 查看
数据库配置.txt
文件,发现还是原来我们修改的文件,并没有因为合并而被修改
至此我们的开发环境和发布环境已经配置完毕了
八、线上自动部署
配置SSH
接下来是我们的重头戏,线上实现自动拉取代码并部署
我们首先要生成一个
SSH
公匙,这里我直接引用码云官方教程:生成/添加SSH公钥
你可以通过以下命令生成
ssh-keygen -t rsa -C "xxxxx@xxxxx.com"
# Generating public/private rsa key pair...
按照提示完成三次回车,即可生成 ssh key。通过查看 ~/.ssh/id_rsa.pub 文件内容,获取到你的 public key
cat ~/.ssh/id_rsa.pub
# ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6eNtGpNGwstc....
复制生成后的 ssh key,通过仓库主页 「管理」->「部署公钥管理」->「添加部署公钥」 ,添加生成的 public key 添加到仓库中。
添加后,在终端(Terminal)中输入
ssh -T git@gitee.com
首次使用需要确认并添加主机到本机SSH可信列表。若返回
Hi XXX! You've successfully authenticated, but Gitee.com does not provide shell access.
内容,则证明添加成功。
添加成功后,就可以使用SSH协议对仓库进行操作了。
拉取代码
- 进入仓库首页
- 依次点击
克隆/下载
-SSH
-复制
,我的SSH
地址是git@gitee.com:bignius/demo_project.git
- 在服务器打开终端输入
git clone git@gitee.com:bignius/demo_project.git
即可拉取到您的项目了
配置自动拉取更新的定时任务
这里我使用的是宝塔面板自带的定时任务功能,方便快捷
- 进入宝塔面板-打开计划任务
- 任务类型选shell脚本,然后输入名称、选择执行周期、输入脚本内容
cd /www/wwwroot/apis.xxx.net/&&git checkout . && git pull
cd /www/wwwroot/apis.xxx.net
进入网站目录git checkou .
放弃所有本地更改git pull
拉取仓库数据
- 我这里是设置的1分钟请求一次拉取,也可以根据自己的业务来修改
- 这句代码的意思就是进入网站目录并执行
拉取代码
的操作
这里的定时任务你也可以根据自己业务逻辑修改
结语
原 创 不 易 , 希 望 大 家 多 多 支 持 \color{#FF0000}{原创不易,希望大家多多支持} 原创不易,希望大家多多支持
文章有什么不懂或者错误的地方欢迎评论指出,如果对您有帮助的话请点个关注收藏哦
Thank you very much ~
博主:bigniu
QQ : 201309512
发布日期:2020-5-1 23:44:28
更新日期:2020-5-1 23:44:32