git 自动化部署

环境软件gitssh用户环境首先要明确这里会用到的概念。 本地仓库, vps的中心仓库,vps的本地仓库。这里vps上会用到两个git仓库,一个是git中心仓库(裸库),一个用于部署的仓库。我们为了区分两个仓库,同时也跟上标准做法。 所以将中心仓库建在git用户目录下vps中心仓库创建git组groupadd git创建git跟相关目录useradd -m -g git -

环境

软件

  1. git

  2. ssh

用户环境

首先要明确这里会用到的概念。 本地仓库, vps的中心仓库,vps的本地仓库。

这里vps上会用到两个git仓库,一个是git中心仓库(裸库),一个用于部署的仓库。

我们为了区分两个仓库,同时也跟上标准做法。 所以将中心仓库建在git用户目录下

vps中心仓库

  1. 创建git组

groupadd git

  1. 创建git跟相关目录

useradd -m -g git -G git -s /bin/bash git

  1. 在git目录下建立.ssh/authorized_keys

将你本地的ssh的pub贴在里面,方便本地代码推到vps的中心仓库时不需要输密码(所以这步不是必须的)

  1. 创建中心仓库

mkdir -p repo/your_repr

cd repo/your_repr

git init --bare

根据上面这样创建的话,中心仓库的地址是: git@ip:repo/your_repo

  1. 在你本地添加远程仓库地址

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/hooksvim post-receive

贴入下面代码:

# !/bin/shunset GIT_DIRdeployPath='/home/user/your_repo'cd $deployPathgit pull origin master

关键字:git, 仓库, vps, repo