**使用 Git Hook 实现网站的自动部署
http://www.tuicool.com/articles/3QRB7jU
自动化能解放人类的双手,而且更重要的是,因为按照规定的流程来走,也减少了很多误操作的产生。不知道大家平时都是怎么样更新自己生产环境的代码的,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 testDeploy $ cd testDeploy $ git clone ~/testRepo #从远程仓库 clone 出源码
为远程仓库设置 Hook
$ cd ~/testRepo/hooks $ vim post-receive
post-receive
里面的执行脚本
#!/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
添加可执行权限
chmod +x post-receive
为本地仓库添加 remote 源
这次的本地仓库就真的是你开发机上面的本地了。在你原有 Git 项目里面添加一条新的 remote 源,以后往这个 remote 源里面 push 代码就会自动触发上面那 bash 脚本了。
$ git remote add deploy user@server.ip:/home/user/testRepo $ git push deploy master
转载于:https://www.cnblogs.com/kenshinobiy/p/4539252.html
**使用 Git Hook 实现网站的自动部署相关推荐
- Window环境下的Git+GitHub+jenkins+Tomcat实现自动部署项目并发送构建邮件
Git+GitHub+jenkins+Tomcat实现自动部署项目 我们这里要实现的效果是:团队通过Git把项目push到GitHub上去,然后Jenkins通过GitHub的webhook(钩子)来 ...
- Asp.net网站的自动部署-sqlserver数据库的自动部署
Asp.net网站的自动部署 2005-09-28 这段时间要解决的问题是asp.net网站的自动部署,主要功能是在安装的时候实现数据库的部署和基本数据的添加,asp.net网站的部署(多个虚拟目录) ...
- 持续集成工具集之四 Jenkins+Maven+Git+Tomcat 项目构建和自动部署
上面安装和配置好Jenkins之后,就可以开始配置构建项目了 新建 因为需要构建的项目是maven项目,所以这里填好项目的名称之后选择"构建一个maven项目",然后点左下的ok ...
- Asp.net网站的ClickOnce自动部署(3)-虚拟目录的配置
在上一篇的Asp.net网站的ClickOnce自动部署(2)-虚拟目录的配置 里面,我介绍了如何通过封装iisvdir.vbs的调用来实现iis虚拟目录的配置,今天继续介绍如何使用System.Di ...
- 搭建git服务器及利用git hook自动布署代码
注意:服务器:Ubuntu Server 14.04,我的项目比较小,所有操作都使用root,建议最好新建一个用户(需要有管理员权限,否则在后面使用hooks自动部署代码时会出现各种权限问题,很蛋疼的 ...
- [转]Eclipse中的Web项目自动部署到Tomcat
原文地址:http://www.cnblogs.com/ywl925/p/3815173.html 原因 很长时间没用Eclipse了,近期由于又要用它做个简单的JSP项目,又要重新学习了,虽然熟悉的 ...
- Eclipse中的Web项目自动部署到Tomcat
2019独角兽企业重金招聘Python工程师标准>>> 很长时间没用Eclipse了,近期由于又要用它做个简单的JSP项目,又要重新学习了,虽然熟悉的很快,但记忆总是很模糊,偶尔犯错 ...
- 使用Travis-CI自动部署博客
使用Travis-CI自动部署博客 因为在github上面存储的是编译好的html代码,不是hexo博客中的博客源文件,所以如果没有备份源文件的话,丢失了源文件(包括md,一堆配置文件)后就不能继续更 ...
- git hook 自动部署 linux git本地服务器搭建 git root 目录 git 仓库 git root/ .git
服务器自动部署项目之GitHooks神器 - CSDN博客 -- 每次都是将本地将代码push到远程仓库,然后再ssh到服务器上git pull,甚是麻烦.在项目开发中使用git的时候,push之后, ...
最新文章
- 深度学习之单目深度估计:无监督学习篇
- 脚本检测到文件特定词后做下一步动作 down restart
- 使用 QEMU 进行系统仿真
- python学成需要多久-小白学python怎么快速入门?多久能完成一个项目?
- 【学习笔记】JS进阶语法一事件进阶
- [云炬创业基础笔记]第七张创业团队测试5
- react-navigation 跨 tabs 返回首页
- html 拖拽坐标,Html+css实现拖拽导航条
- IDEA(2021)最全常用快捷键《必须收藏》
- PyTorch 1.0 中文文档:torch.nn.init
- 隐藏与显现_原神:芭芭拉的隐藏彩蛋你知道吗?对着游戏npc用技能就可显现
- 10寸 nuc972_新唐ARM9之NUC972学习历程之系统的搭建和BSP包的使用
- Intelliok IDEA的Monokai主题
- WPF实现鼠标拖动框选功能
- 电脑解锁后黑屏有鼠标_电脑开机后黑屏只有一个鼠标箭头怎么办_win10屏幕黑屏就剩鼠标如何修复...
- 无需编码,可一键生成前后端代码,少写80%的代码!
- 彻底关闭WINDOWS默认共享的4种方法
- 苹果手机屏幕如何投射到win10?
- 电脑Mac地址更改后有什么害处?怎么改回原来的?
- 纪中训练5月23日提高组T1
热门文章
- angular蚂蚁_Angular 中后台前端解决方案 - Ng Alain 介绍
- boos里的AHCI RAID_安徒恩Raid删除,安徒恩讨伐战上线,详细攻略快速看,成为新的摸金圣地...
- 服务器磁盘阵列做win7系统,Raid0可以安装winxp-x86,但不能安装win7-x64,是怎么回事呢?!...
- python 图像分析自然纹理方向与粗细代码_python skimage图像处理(二)
- 服务器ip 计算机名,服务器计算机名称或者ip地址
- python类和对象课件_简单解释Python的类和对象
- linux cp 强制覆盖_Linux基本操作教程
- MyBatis的使用
- git 修改标签名称_Git常用命令汇总,希望能帮到你
- python的matplotlib背景线_python中matplotlib的颜色及线条 控制