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