前置

配置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

img

img

配置git环境

  1. 首先远程服务器得安装git

    yum install git
    
  2. 创建git账户

    adduser git
    
  3. 添加git账户权限

    找到如下内容

    ## Allow root to run any commands anywhere
    root    ALL=(ALL)     ALL
    

    输入完上面的命令,按回车之后,进入编辑界面。
    这里要先点击 “i” 键,进入编辑模式(最底下会显示 —- INSERT —- ),然后找到红色框框中的内容,添加以下内容。

    git     ALL=(ALL)       ALL
    

    img

    然后按 “Esc” 键,此时最底下的 —- INSERT —- 消失,再输入 “:wq”,即保存退出。

  4. 改回权限

    chmod 400 /etc/sudoers
    
  5. 设置git账户密码

    sudo passwd git
    

    连续输入两次密码就设置成功了。
    注意:Linux下输入密码是不显示的,直接输入,输入完回车即可。

  6. 切换至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
    

    img

建立git hook关联工作目录

  1. 创建git仓库

    cd ~
    // 默认是创建在home/git/目录下
    git init --bare blog.git
    
  2. 设置钩子

    填写你的工作目录在–work-tree后面

    git --work-tree=/www/wwwroot/liuxinghao.top --git-dir=/var/repo/blog.git checkout -f
    
  3. 保存并退出

    chmod +x ~/blog.git/hooks/post-receive
    
  4. 修改权限

    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里面的文件一键部署到远程服务器的工作目录下了。