最近将博客从Typecho搬至Hexo,考虑到国内访问Github Page那众所周知的速度,因此我决定在自己的小水管上建一个私有git仓库,然后将hexo文件同时deliver到两个仓库上。安全+速度,岂不美哉- v -
环境
CentOS
1. 创建用户
sudo adduser git
sudo addpw git
# 然后输入两遍密码。
2. 建立Git仓库
# 切换git用户
sudo su git
# 切换环境为/home/git内
cd
# 创建文件夹
mkdir soulterBlog
cd soulterBlog
sudo git init --bare myBlog.git
到这一步,可能会出现git用户使用sudo导致的错误,因为git用户无权使用sudo命令。 下面是解决方案↓
su root
chmod u+w /etc/sudoers
vi /etc/sudoers
在文件末尾,添加
git ALL=(ALL) ALL
保存退出,再
sudo git init --bare myBlog.git
即可。
至此,创建了裸仓库。当push到这个仓库后,会得到一个pack文件,但是此时还看不到具体的工作文件。
# 当前在服务器裸仓库内
cd hooks
# 创建打开post-receive
vim post-receive
输入
#!/bin/sh
git --work-tree=[工作空间地址] --git-dir=[git仓库地址] checkout -f
保存退出。
再push之后,理论上就可以在工作空间地址看到push上来的文件了。 然鹅,push时也有可能报错… such as:
......failed to unpack
很大原因是git目录或者工作空间目录没有足够权限。挂一个777权限就行。