环境
软件
git
ssh
用户环境
首先要明确这里会用到的概念。 本地仓库, vps的中心仓库,vps的本地仓库。
这里vps上会用到两个git仓库,一个是git中心仓库(裸库),一个用于部署的仓库。
我们为了区分两个仓库,同时也跟上标准做法。 所以将中心仓库建在git用户目录下
vps中心仓库
-
创建git组
groupadd git
-
创建git跟相关目录
useradd -m -g git -G git -s /bin/bash git
-
在git目录下建立.ssh/authorized_keys
将你本地的ssh的pub贴在里面,方便本地代码推到vps的中心仓库时不需要输密码(所以这步不是必须的)
-
创建中心仓库
mkdir -p repo/your_repr
cd repo/your_repr
git init --bare
根据上面这样创建的话,中心仓库的地址是: git@ip:repo/your_repo
-
在你本地添加远程仓库地址
git remote add vps git@ip:repo/your_repo
配置完后,后续你推送代码到 vps 这个远程仓库名时,就是自动部署了
vps的本地仓库
在此之前,需要先假定一些条件。 我们假设vps仓库是在另个一账户下创建,那么我们需要先去该账户下创建 ssh 的秘钥。 创建完后将该账户生成的pub文件中的内容复制到 /home/git/.ssh/authorized_keys 中
做完这些,这下用来部署的仓库就很简单了
git clone git@127.0.0.1:repo/your_repo
自动布署代码
在 git 账号下 执行
cd repo/your_repr/hooks
vim post-receive
贴入下面代码:
#!/bin/sh
unset GIT_DIR
deployPath='/home/user/your_repo'
cd $deployPath
git pull origin master
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。