使用 Git Hook 实现网站的自动部署
2017-08-23 21:03
447 查看
自动化能解放人类的双手,而且更重要的是,因为按照规定的流程来走,也减少了很多误操作的产生。不知道大家平时都是怎么样更新自己生产环境的代码的,FTP 覆盖旧文件、服务器定时任务去 build 最新的源码,还是有更高级的做法?
目前我在使用 Git Hook 来部署自己的项目。Git Hook 是 Git 提供的一个钩子,能被特定的事件触发后调用。其实,更通俗的讲,当你设置了 Git Hook 后,只要你的远程仓库收到一次 push 之后,Git Hook 就能帮你执行一次 bash 脚本。
下面是我使用 Git Hook 进行简单的自动化部署,可能还有更高级的做法,大家自己去挖掘。
这里我们要通过
最后,为
https://dearb.me/archive/2015-03-30/automate-deploy-your-websites-with-git-hook/
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; line-height: 22.0px; font: 15.0px "Helvetica Neue"; color: #00a2ff }
https://segmentfault.com/a/1190000003836345?_ea=386770
目前我在使用 Git Hook 来部署自己的项目。Git Hook 是 Git 提供的一个钩子,能被特定的事件触发后调用。其实,更通俗的讲,当你设置了 Git Hook 后,只要你的远程仓库收到一次 push 之后,Git Hook 就能帮你执行一次 bash 脚本。
下面是我使用 Git Hook 进行简单的自动化部署,可能还有更高级的做法,大家自己去挖掘。
在服务器初始化一个远程 Git 仓库
git init和
git --bare init初始化出来的仓库是完全不一样的,具体我 Google 了下,英文倒是理解了,但是要翻译出中文却不知道用什么形容词去称呼这2种仓库。
这里我们要通过
git --bare init初始化一个远程仓库
1 2 3 4 | $ cd ~ $ mkdir testRepo $ cd testRepo $ git --bare init |
在服务器初始化一个本地 Git 仓库
这个仓库就是通过git init初始化出来最常见的本地仓库,它的作用是拉去远程仓库(其实就在它旁边)最新的源码,然后在这个仓库里进行编译,把代码编译到 www 目录(网站的根目录)。
1 2 3 4 5 6 7 8 9 10 11 | $ cd ~ $ mkdir testDeploy $ cd testDeploy $ git clone ~/testRepo #从远程仓库 clone 出源码 ``` ### 为远程仓库设置 Hook ```bash $ cd ~/testRepo/hooks $ vim post-receive |
post-receive里面的执行脚本
1 2 3 4 5 6 7 8 9 10 11 12 | #!/bin/sh unset GIT_DIR DeployPath=/home/user/testDeploy WwwPath=/home/wwwroot/testDeploy cd $DeployPath git add . -A && git stash git pull origin master # 下面这2步都是按照实际你自己添加的bash脚本 fis release -Dompd $WwwPath # 我使用的FIS,对前端代码进行编译 qrsync /home/user/qiniutools/config.json # 使用七牛同步工具进行同步 |
post-receive添加可执行权限
1 | chmod +x post-receive |
为本地仓库添加 remote 源
这次的本地仓库就真的是你开发机上面的本地了。在你原有 Git 项目里面添加一条新的 remote 源,以后往这个 remote 源里面 push 代码就会自动触发上面那 bash 脚本了。1 2 | $ git remote add deploy user@server.ip:/home/user/testRepo $ git push deploy master |
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; line-height: 22.0px; font: 15.0px "Helvetica Neue"; color: #00a2ff }
https://segmentfault.com/a/1190000003836345?_ea=386770
相关文章推荐
- 使用 Git Hook 实现网站的自动部署
- **使用 Git Hook 实现网站的自动部署
- 185 git 使用 Git Hook 实现网站的自动部署
- 使用 Git Hook 实现网站的自动部署
- 使用 Git Hook 实现网站的自动部署
- 搭建内部开发git服务器并使用hook实现自动部署
- centos 安装git服务器,配置使用证书登录并你用hook实现代码自动部署
- (git)Bitbucket使用WebHook实现自动部署PHP代码
- git hook远程仓库实现网站的自动部署
- 使用inotify和git pull 实现网站自动部署(附wordpress插件)
- 使用Git的hook实现代码的自动部署
- git码云配置web hook钩子实现自动部署,git权限等问题,LAMP
- git hook实现代码自动部署
- Php+WebHook实现项目自动部署 - 关于Git自动部署方案
- Gitlab使用Webhook实现Push代码自动部署
- 在git.oschina上使用WebHook自动部署
- GitHook+JGit实现最新代码的自动克隆或者项目的自动部署
- 利用WebHook实现PHP自动部署Git代码
- 使用 Git Hooks 实现自动项目部署
- 使用 Git Hooks 实现自动项目部署