git hook之自动化部署

相信不少做Web的人都遇到过如何提交本地代码,自动更新服务器项目目录的问题,那么现在讲解一下怎样通过自动化工具来处理这个难题。

环境

首先你需要有一个代码版本控制工具,本文中使用git,windows用户需要安装git,而本文在osx下做讲解。

自动化部署

建立一个 git 远程仓库

# $ cd [存储远程库的项目目录]
# $ git init --bare [registry name].git
# 在这里
# 存储远程库的项目目录: ~/Documents/git 
# registry name: reminder
$ cd ~/Documents/git
$ git init --bare reminder.git
$ cd reminder.git

进入到reminder.git 目录下发现有一个hooks目录,新建post-receive

$ cd reminder.git
$ vi post-reveive

# 在post-reveive文件中添加以下内容

#!/bin/sh
unset GIT_DIR
# 服务器项目目录: /Applications/XAMPP/htdocs/webroot/
DeployPath=/Applications/XAMPP/htdocs/webroot/reminder

cd $DeployPath
git add . -A && git stash
git pull origin master

echo '部署成功'

服务器项目目录clone远程仓库

$ cd /Applications/XAMPP/htdocs/webroot
$ git clone ~/Documents/git/reminder.git

新建本地开发目录

# 在本地开发目录中添加 git 远程仓库
$ git remote add origin ~/Documents/git/reminder.git
$ touch native
$ git add .
$ git ci -m "native ci"
# 推送到远程
$ git push -u origin master

现在看一下服务器项目目录/Applications/XAMPP/htdocs/webroot/reminder下面是不是多了一个我们本地开发提交的native文件啊?


luckyyulin
217 声望9 粉丝

有一种鸟没有脚,他的一生只能在天上飞来飞去,飞累了就在风里睡觉,一辈子只能落地一次,那就是他死的时候