IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 如何使用Git实现自动化部署企业项目 -> 正文阅读

[开发工具]如何使用Git实现自动化部署企业项目

前言

我们深入学习Git,学习Git自动化部署项目。为什么深入学习git自动化部署?之前我们部署php代码到服务器网站目录,先将本地的代码全部提交到github仓库,这个时候要让服务器上的代码更换成你提交的,那你就得登录到服务器做一次git pull origin master 的操作。有什么方法能让这一步自动操作了呢?这个时候我们就使用到了Git 钩子了!!

官网解释:和其它版本控制系统一样,Git 能在特定的重要动作发生时触发自定义脚本。 有两组这样的钩子:客户端的和服务器端的。 客户端钩子由诸如提交和合并这样的操作所调用,而服务器端钩子作用于诸如接收被推送的提交这样的联网操作。 你可以随心所欲地运用这些钩子。

  简单来说就是一个在特定环境下触发的脚本。也就是说我们把服务器要拉取我们更新的代码这一步自动触发,自动拉取到最新。

二、利用钩子实现项目自动化部署?

1、创建 git 用户

 登录服务器,这里默认你已经安装好了 git。创建一个 名叫chenglin 的git 用户:

adduser chenglin

2、给 git 用户添加权限

#在根目录下的 home 文件夹下创建一个git文件夹 
mkdir /home/git 
#切换到创建好的git文件夹 
cd /home/git 
#创建 .ssh文件夹,里面主要用来放公钥 
mkdir .ssh 
#切换到.ssh文件夹并创建authorized_keys文件 
cd .ssh 
touch authorized_keys 

3、配置 git 并获取公钥

#在本地配置用户名和邮箱,我的用户名默认为chenglin
git config --global user.name "chenglin" 
git config --global user.email "244711722@qq.com" 

注意:如果用了 --global 选项,那么以后你所有的项目都会使用这里配置的用户信息。如果要在某个特定的项目中使用其他名字或邮箱,只需在该项目下执行:

git config user.name "chenglin" 
git config user.email "244711722@qq.com" 

????????接下来我们获取公钥,请先查看你的用户下的.ssh 文件夹中是否之前就含有公钥和私钥,我们需要寻找一对以 id_dsa 或 id_rsa 命名的文件,其中一个带有 .pub 扩展名。 .pub 文件是你的公钥,另一个则是私钥。如果没有请运行 ssh-keygen。

  使用 cat ~/.ssh/id_rsa.pub 命令可以获取公钥,复制它,使用 vi 或者 vim 命令把它粘贴到我们之前创建的 authorized_keys 文件中,使用:wq 保存。

4、初始化仓库

  创建一个存放 git 仓库的文件夹并初始化一个裸仓库:

mkdir /www/wwwroot/git 
cd /www/wwwroot/git 
#初始化一个裸仓库(强烈建议) 
git init --bare website.git 
#配置仓库的权限,让我们之前创建好的git用户chenglin能读写 
chown -R git:git website.git 

添加钩子

cd?/www/wwwroot/git/website.git/hooks?

touch?post-receive?

vim?post-receive?

在 post-receive 文件里面粘贴:

#!/bin/sh 
# 打印输出 
echo '======上传代码到服务器======' 
# 打开线上项目文件夹 
cd /var/www/html/website 
# 这个很重要,如果不取消的话将不能在cd的路径上进行git操作 
unset GIT_DIR 
git pull origin master 
# composer update 
echo $(date) >> hook.log 
echo '======代码更新完成======' 

保存后给 post-receive 文件加上运行权限?

chmod?+x?post-receive?

?

  这里必须注意,如果不给权限,后面的 git pull 将会报错,原因是没有权限写入。关于裸仓库和普通仓库的区别简单来说就是裸仓库看不到项目文件,普通仓库和你的项目目录一样,只是多了一个.git 文件夹。

5、生成项目仓库

  这个也是在服务器上进行的,同时说明一下 /var/www/html是我项目环境的根目录。

#在服务器项目环境目录下 git clone
[root@localhost ~]# cd /var/www/html 
#克隆仓库 
git clone /www/wwwroot/git/website.git 
#设置权限 
chown -R git website 

?

? 注意路径,git 仓库是 /www/wwwroot/git, 项目仓库是/var/www/html。

6、克隆到本地

#?通过ip地址或域名从配置好的线上仓库拉取下来?
git?clone?git@192.168.171.129:/www/wwwroot/git/website.git?

7、上传代码(git push)


#?创建README.md文件?
touch?README.md?
git?add?.?
git?commit?-m"XXXX"?
git?push?

8.在本地修改部分内容,然后提交推送 git push,可以看到我们已经实现了自动化部署。?

?

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-04-09 18:40:00  更:2022-04-09 18:40:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/14 15:08:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码