利用Hook把Git当网站发布工具用

以前在服务器上架一个网站,都要其一个FTP server来更新代码,还经常出现误删(本博客就被删过一次,嘤嘤嘤)的情况。后来我就一直用Git来部署了,好处是不用到处找FTP客户端了,代码同时存在服务器和家里的电脑上,万一丢了也能找回来。当然,还可以随时回滚到特定的时间。

这里简单说一下通过Git的Hook机制来更新网站代码,这样你只需要在自己电脑上git push,服务器上的代码就更新了。
首先,你要有SSH权限。

架设服务器端Git仓库

apt-get install git
mkdir repo
cd repo
git --bare init

创建本地Git并完成第一次推送

mkdir source
cd source
touch README
git init
git add README
git commit -m 'init'
git remote add origin username@servername:/path/to/repo
git push origin master

最后我们来添加Hook,回到服务器

cd /repo/hooks
vim post-receive

然后填入以下内容,记得把web目录的路径替换成你自己的。

#!/bin/sh
GIT_WORK_TREE=/path/to/www git checkout -f

最后记得

chmod +x post-receive

就大功告成啦。

Hook执行的权限是由你用来往repo push的帐号决定的,如果部署不成功请检查该帐号是否对web目录具有写权限。另外post-receive必须有可执行权限,不然什么都不会发生(我就忘了,检查了好久,这也是为什么要写这篇博客的原因)。

配合GitHub客户端的Revert可以实现版本的回滚发布:

Screen Shot 2016-05-06 at 8.15.48 PM

本文由 Easy 第一时间收藏到GET,原文来自 → ftqq.com

「GetParty」

关注微信号,推送好文章

微信中长按图片即可关注

更多精选文章

评论(5)
微博一键登入