本地服务器作为git仓库

git仓库

安装git

1
2
sudo apt-get update
sudo apt-get install git

切换root用户

1
su root

添加git用户

1
adduser git

修改权限

1
2
chmod 740 /etc/sudoers
vim /etc/sudoers

在root ALL=(ALL:ALL) ALL下面添加一条

1
git ALL=(ALL:ALL) ALL

然后保存并退出,将sudoers文件权限改回原样:

1
chmod 400 /etc/sudoers

git用户配置

设置git用户的密码:

1
2
sudo passwd git
切换到git用户,然后在~目录下创建 .ssh文件夹:
1
2
3
4
su git
cd ~
mkdir .ssh
cd .ssh

生成公钥密钥文件:

1
ssh-keygen

将公钥文件复制一份:

1
cp id_rsa.pub authorized_keys

修改authorized_keys的权限:

1
2
3
chmod 755 ~
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

然后保存并退出后,我们就可以利用ssh连接和登陆git用户啦~

之后记得把博客hexo文件的拥有者改为git,否则hexo d没有权限上传

1
2
su root
chown git -R /博客路径

Git的勾子hooks

创建仓库

1
2
3
4
su root
cd /home/git
git init --bare blog.git // 在/home/git下创建新仓库blog.git
chown git:git -R blog.git // 给予git用户权限

/home/hexo/blog.git/hookd 下创建一个 post-receive 文件
把提交到 /home/git/blog.git 仓库里的文件同步到 /home/ubuntu/hexo(上文nginx的root资源目录) 中。

1
2
cd blog.git/hooks/
vim post-receive

post-receive 中添加以下内容:

1
2
#!/bin/bash
git --work-tree=/home/xld/hexo --git-dir=/home/git/blog.git checkout -f

保存退出,添加可执行权限:

1
chmod +x /home/git/blog.git/hooks/post-receive

————————————————
版权声明:本文为CSDN博主「细粒丁」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/li1055107552/article/details/121897025

如果是同ip地址第2次上传,记得把上传用的主机的C:\Users\用户名\.ssh\known_hosts里面相关的ip密钥删掉

hexo上传设置

deploy