/***************************************************************************
* Git 部署 Web 网站
* 说明:
* 主要是想自动部署静态网站到自己的VPS上,这样做的目的是方便像github
* pages那样更新内容。
*
* 2017-2-7 深圳 南山平山村 曾剑锋
**************************************************************************/
一、参考文档:
1. 处理git clone命令的非标准SSH端口连接
http://nanxiao.me/git-clone-ssh-non-22-port/
2. 使用Git来部署一个Web站点笔记
http://rmingwang.com/using-git-to-deploy-a-web-site.html
二、操作步骤:
1. VPS安装Web相关软件,nginx、Apache,选自己擅长的就行;
2. VPS生成git SSHkey,主要是提交代码的时候使用SSH来提交;
3. 把自己的id_rsa.pub文件内容拷贝到VPS的/~/.ssh/authorized_keys文件里,一行一个;
4. 在VPS上创建git仓库:
git init --bare demo.git
5. 在demo.git的hooks创建post-receive文件并添加:GIT_WORK_TREE=/home/zengjf/www git checkout -f,操作如下:
[root@localhost demo.git]# cd hooks/
[root@localhost hooks]# ls
applypatch-msg.sample post-receive.sample pre-rebase.sample
commit-msg.sample post-update.sample prepare-commit-msg.sample
post-commit.sample pre-applypatch.sample update.sample
post-receive pre-commit.sample
[root@localhost hooks]# pwd
/home/zengjf/demo.git/hooks
[root@localhost hooks]# cat post-receive
GIT_WORK_TREE=/home/zengjf/www git checkout -f
[root@localhost hooks]#
6. 在开发机上写好内容,git add、git commit,最后推送到VPS服务器上,命令大致如下:
git push ssh://root@21.106.105.15:7841/home/zengjf/demo.git master
7. 自动在web目录生成了想要的推送文件:
[root@localhost www]# ls
index.html
[root@localhost www]# cat index.html
zengjf
two times
three times
four times
five times
[root@localhost www]# pwd
/home/zengjf/www
[root@localhost www]#