抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

因为要来回倒腾自己写的机器人脚本,所以不如自建一个 git 仓库,每次写完脚本 push 到仓库,仓库那边触发钩子,自动热更新,岂不美哉!

参考文章:在自己服务器搭建git仓库 - 简书 (jianshu.com)

因为网上讲的很模糊,我在此说明一下

我在腾讯云有 Cent OS 的Linux服务器,下面统称 “远端”

我本机在用的 MacBook ,下面统称 “本地”

服务器 IP 统一替换

配置Git

因为我已经安装过 Git 了,现在只需要创建 Git 用户,具体步骤(远端):

# 添加 git 用户
groupadd git
useradd git -g git
# 给 git 设置密码
passwd git

初始化仓库

随便选择一个位置作为 Git 仓库,我的操作:

cd /CQHTTP
mkdir git_repo
chown git:git git_repo/
cd git_repo

git init --bare koishi.git
> Initialized empty Git repository in /CQHTTP/git_repo/koishi.git/


chown -R git:git /home/git # 把 home/git 所属用户改为git
chown -R git:git koishi.git # 把仓库所属用户改为git

查看一下…

[root@VM-0-16-centos git_repo]# pwd
/CQHTTP/git_repo
[root@VM-0-16-centos git_repo]# ls
koishi.git

创建证书

这部操作可以让你每次 push 都不需要输入密码(可以不做)

我参考的文章写的不好,踩了很多坑,下面讲我的做法:

在本地生成公钥

随便找个位置执行它,会在 ~/.ssh 中生成私钥公钥(id_rsa、id_rsa.pub)

ssh-keygen -t rsa # 敲三次回车
cat ~/.ssh/id_rsa.pub 
> ssh-rsa 
> xxxxxxxxxxxxxxxx
# 把上面复制,等下要用到

登录到刚刚创建的用户

我创建的用户叫 git, 所以切到本地去登录 git 这个账号

ssh git@{{server}}
> Last login: Sat Oct 30 10:15:10 2021 from 112.7.45.62
ssh-keygen -t rsa	# 敲三次回车

ssh-keygen -t rsa主要是为了方便创建ssh文件夹,当然你也可以手动创建(给700权限):

touch .ssh/authorized_keys
chmod 600 .ssh/authorized_keys

将本地复制的公钥粘贴到authorized_keys,这个文件是用来记录客户端的公钥(如果有多个,一行一个)

vim .ssh/authorized_keys

克隆仓库到本地

git clone git@{{server}}:/CQHTTP/git_repo/koishi.git # 克隆仓库
cd project
git pull
git push

如果配置了证书,现在 pull,push 应该是不要密码的。

编写远端仓库钩子命令

参考文章:(36条消息) 仓库钩子实现自动构建_我有一个梦想-CSDN博客

这是我的post-receive

#!/bin/sh
GIT_REPO=/CQHTTP/git_repo/koishi.git
TMP_GIT_CLONE=/CQHTTP/git_repo/temp_koishi
ORIGIN=/CQHTTP/koishi


rm -rf ${TMP_GIT_CLONE}
git clone $GIT_REPO $TMP_GIT_CLONE
rm -rf ${ORIGIN}
cp -r ${TMP_GIT_CLONE}/plugin ${ORIGIN}

记得要把 .sample 后缀删了才行

效果

本地编辑代码上传后自动 HMR

image-20211030135210827

评论