使用git hook自动部署项目
前置
配置SSH密钥
为了使本地可以跟远程的仓库建立联系,需要在本地配置SSH密钥,这样就可以在本地直接提交代码到远端git仓库。
如果你是第一次配置SSH,则需要配置git的 username 和 email。
在桌面点击鼠标右键,点击“Git Bash Here”,分别执行下列两条命令。
git config --global user.name "你要设置的用户名"
git config --global user.email "你要设置的邮箱"
之后生成SSH密钥:
ssh-keygen -t rsa -C "你刚刚设置的邮箱"
如果不需要设置密码的话,连续三个回车就好了。在这之后会得到两个文件: id_rsa 和 id_rsa.pub。
路径: C:\Users\Administrator(你的用户名)\.ssh
配置git环境
-
首先远程服务器得安装git
yum install git
-
创建git账户
adduser git
-
添加git账户权限
找到如下内容
## Allow root to run any commands anywhere root ALL=(ALL) ALL
输入完上面的命令,按回车之后,进入编辑界面。
这里要先点击 “i” 键,进入编辑模式(最底下会显示 —- INSERT —- ),然后找到红色框框中的内容,添加以下内容。git ALL=(ALL) ALL
然后按 “Esc” 键,此时最底下的 —- INSERT —- 消失,再输入 “:wq”,即保存退出。
-
改回权限
chmod 400 /etc/sudoers
-
设置git账户密码
sudo passwd git
连续输入两次密码就设置成功了。
注意:Linux下输入密码是不显示的,直接输入,输入完回车即可。 -
切换至git用户,创建 ~/.ssh 文件夹和 ~/.ssh/authorized_keys 文件,并赋予相应的权限
su git mkdir ~/.ssh vim ~/.ssh/authorized_keys
先点击 “i” 键,进入编辑模式,将我们在本地生成的id_rsa.pub文件中的公钥复制到authorized_keys中(全部复制),之后按 “Esc” 键,然后输入 “:wq”,保存退出。
接着,输入以下命令,赋予权限。
chmod 600 /home/git/.ssh/authorized_keys chmod 700 /home/git/.ssh
在本地电脑桌面点击鼠标右键,点击“Git Bash Here”,输入以下命令,其中SERVER改为自己的云主机外网IP,执行输入yes后,不用输入密码并且出现[git@xxxxxxxxxxx ~]# _ 说明git配置成功。
ssh -v git@SERVER
建立git hook关联工作目录
-
创建git仓库
cd ~ // 默认是创建在home/git/目录下 git init --bare blog.git
-
设置钩子
填写你的工作目录在–work-tree后面
git --work-tree=/www/wwwroot/liuxinghao.top --git-dir=/var/repo/blog.git checkout -f
-
保存并退出
chmod +x ~/blog.git/hooks/post-receive
-
修改权限
su root 输入密码 // 修改文件夹权限 chmod 777 /www/wwwroot/liuxinghao.top chmod 777 /www/wwwroot
在前端项目中写shell脚本,建立git连接
在根目录下面创建一个deploy.sh文件
#!/bin/bash
# 构建Vue项目
npm run build
# 进入dist文件夹
cd dist
# 初始化git仓库
git init
# 添加所有文件到暂存区
git add .
# 提交到本地仓库
git commit -m "Add dist files"
# 添加远程仓库URL
git remote add origin git@远程服务器公网ip:/var/repo/blog.git
# 推送到远程仓库
git push -f origin master
# 返回项目根目录
cd ..
最后双击执行deploy.sh文件,就可以把dist里面的文件一键部署到远程服务器的工作目录下了。
- 感谢你赐予我前进的力量