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文件啊?