使用 Git Hook 实现网站的自动部署
来源:互联网 发布:软件总体设计说明书 编辑:程序博客网 时间:2024/05/16 05:19
自动化能解放人类的双手,而且更重要的是,因为按照规定的流程来走,也减少了很多误操作的产生。不知道大家平时都是怎么样更新自己生产环境的代码的,FTP 覆盖旧文件、服务器定时任务去 build 最新的源码,还是有更高级的做法?
目前我在使用 Git Hook 来部署自己的项目。Git Hook 是 Git 提供的一个钩子,能被特定的事件触发后调用。其实,更通俗的讲,当你设置了 Git Hook 后,只要你的远程仓库收到一次 push 之后,Git Hook 就能帮你执行一次 bash 脚本。
下面是我使用 Git Hook 进行简单的自动化部署,可能还有更高级的做法,大家自己去挖掘。
在服务器初始化一个远程 Git 仓库
git init 和 git –bare init 初始化出来的仓库是完全不一样的,具体我 Google 了下,英文倒是理解了,但是要翻译出中文却不知道用什么形容词去称呼这2种仓库。
这里我们要通过 git –bare init 初始化一个远程仓库
$ cd ~$ mkdir testRepo$ cd testRepo$ git --bare init
在服务器初始化一个本地 Git 仓库
这个仓库就是通过 git init 初始化出来最常见的本地仓库,它的作用是拉去远程仓库(其实就在它旁边)最新的源码,然后在这个仓库里进行编译,把代码编译到 www 目录(网站的根目录)。
$ cd ~$ mkdir testRepo$ cd testRepo$ git --bare init
为远程仓库设置 Hook
$ cd ~/testRepo/hooks$ vim post-receive
post-receive 里面的执行脚本
#!/bin/shunset GIT_DIRDeployPath=/home/user/testDeployWwwPath=/home/wwwroot/testDeploycd $DeployPathgit add . -A && git stashgit pull origin master# 下面这2步都是按照实际你自己添加的bash脚本fis release -Dompd $WwwPath # 我使用的FIS,对前端代码进行编译qrsync /home/user/qiniutools/config.json # 使用七牛同步工具进行同步
最后,为 post-receive 添加可执行权限
chmod +x post-receive
为本地仓库添加 remote 源
这次的本地仓库就真的是你开发机上面的本地了。在你原有 Git 项目里面添加一条新的 remote 源,以后往这个 remote 源里面 push 代码就会自动触发上面那 bash 脚本了。
$ git remote add deploy user@server.ip:/home/user/testRepo$ git push deploy master
- 185 git 使用 Git Hook 实现网站的自动部署
- 使用 Git Hook 实现网站的自动部署
- 使用 Git Hook 实现网站的自动部署
- git hook远程仓库实现网站的自动部署
- git hooks 实现网站的自动部署
- git hook实现代码自动部署
- 搭建内部开发git服务器并使用hook实现自动部署
- 203 git hook 一次自动部署实践
- git码云配置web hook钩子实现自动部署,git权限等问题,LAMP
- (git)Bitbucket使用WebHook实现自动部署PHP代码
- 【Webhooks】使用Git的Webhooks进行服务器自动部署代码
- GIT服务器实现web代码自动部署
- GIT服务器实现web代码自动部署
- 实现git hooks自动持续部署
- jenkins sonar tomcat git实现自动部署
- jenkins sonar tomcat git实现自动部署
- gitblit git SERVER window 安装配置 hook post-receive 自动部署
- gitblit git SERVER window 安装配置 hook post-receive 自动部署
- HTTP幂等性及注意事项
- 解读TCP 四种定时器
- 关于一个字节占几位的问题
- 创业一年融资两轮估值数亿,这家公司凭什么在巨头列阵中崭露头角?
- 程序员最爱上的18个顶级开发社区
- 使用 Git Hook 实现网站的自动部署
- 怎样使用sqlplus连接oracle11g数据库
- (LeetCode) Roman to Integer --- 罗马数字转整数
- web前端-JavaScript 数据类型 -007
- 解决VS2005 VS2008 vs2010断点无效-源代码与原始版本不同
- 在底层获取安卓wifi的mac地址
- 3分钟让你学会如何团队管理!打造高效团队!
- 视频直播技术详解(5)延迟优化
- 1亿非户籍人口将落户城市 农转非不得要求放弃宅地