用git部署网站代码到生产环境VPS

前言

之前开发网页的时候,经常要把代码传到自己的VPS上,平常用FTP传整个代码很慢,所以就像到了用Git push到VPS上。

创建仓库

1
2
3
4
cd /var
mkdir git && cd git
mkdir your_site.git && cd your_site.git
git init --bare

--bare的意思是,该文件夹是我们的代码仓库,它将不会放源代码而只是做版本控制。

Hook钩子

我们将会使用post-receive钩子

1
ls

你可以看到有hooks文件夹已经为我们创建好了,而且里面也有各种钩子的样例

1
cd hooks

创建我们自己的post-receive

1
vim post-receive

输入下面的命令到这个文件之中:

1
2
#!/bin/sh
git --work-tree=生产环境网站文件夹位置 --git-dir=/var/git/your_site.git checkout -f

git-dir指的是仓库的地址, work-tree则是存放代码的位置,也就是我们的网站的源代码的位置。 接下来则是要保证它可以运行:

1
chmod +x post-receive

本地

一般情况是你已经有了自己的git项目了,那么只需要添加vps的仓库地址就行了

git remote add myVPS-sitename ssh://user@mydomain.com/var/git/your_site.git`
1
2
3
4
5
'myVPS-sitename'只是这个远程连接的名称,你可以同时有多个远程连接,每次push的时候指定名称即可将代码上传到不同的仓库。
如果你本地还没有项目代码:

cd 项目地址 git init

1
2
3
添加一个README.ME文件后

git add . git commit -m "项目初始"

1
2
3
接下来我们便可以将代码push到vps了:

`git push myVPS-sitename master

master指定的是master分支,如果你有其他分支也可以push其他分支。.

总结

这只是最基本的设置,利用hook结合一些自己编写的脚本我们还可以做很多事情。