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 实现网站的自动部署相关推荐

  1. Window环境下的Git+GitHub+jenkins+Tomcat实现自动部署项目并发送构建邮件

    Git+GitHub+jenkins+Tomcat实现自动部署项目 我们这里要实现的效果是:团队通过Git把项目push到GitHub上去,然后Jenkins通过GitHub的webhook(钩子)来 ...

  2. Asp.net网站的自动部署-sqlserver数据库的自动部署

    Asp.net网站的自动部署 2005-09-28 这段时间要解决的问题是asp.net网站的自动部署,主要功能是在安装的时候实现数据库的部署和基本数据的添加,asp.net网站的部署(多个虚拟目录) ...

  3. 持续集成工具集之四 Jenkins+Maven+Git+Tomcat 项目构建和自动部署

    上面安装和配置好Jenkins之后,就可以开始配置构建项目了 新建 因为需要构建的项目是maven项目,所以这里填好项目的名称之后选择"构建一个maven项目",然后点左下的ok ...

  4. Asp.net网站的ClickOnce自动部署(3)-虚拟目录的配置

    在上一篇的Asp.net网站的ClickOnce自动部署(2)-虚拟目录的配置 里面,我介绍了如何通过封装iisvdir.vbs的调用来实现iis虚拟目录的配置,今天继续介绍如何使用System.Di ...

  5. 搭建git服务器及利用git hook自动布署代码

    注意:服务器:Ubuntu Server 14.04,我的项目比较小,所有操作都使用root,建议最好新建一个用户(需要有管理员权限,否则在后面使用hooks自动部署代码时会出现各种权限问题,很蛋疼的 ...

  6. [转]Eclipse中的Web项目自动部署到Tomcat

    原文地址:http://www.cnblogs.com/ywl925/p/3815173.html 原因 很长时间没用Eclipse了,近期由于又要用它做个简单的JSP项目,又要重新学习了,虽然熟悉的 ...

  7. Eclipse中的Web项目自动部署到Tomcat

    2019独角兽企业重金招聘Python工程师标准>>> 很长时间没用Eclipse了,近期由于又要用它做个简单的JSP项目,又要重新学习了,虽然熟悉的很快,但记忆总是很模糊,偶尔犯错 ...

  8. 使用Travis-CI自动部署博客

    使用Travis-CI自动部署博客 因为在github上面存储的是编译好的html代码,不是hexo博客中的博客源文件,所以如果没有备份源文件的话,丢失了源文件(包括md,一堆配置文件)后就不能继续更 ...

  9. git hook 自动部署 linux git本地服务器搭建 git root 目录 git 仓库 git root/ .git

    服务器自动部署项目之GitHooks神器 - CSDN博客 -- 每次都是将本地将代码push到远程仓库,然后再ssh到服务器上git pull,甚是麻烦.在项目开发中使用git的时候,push之后, ...

最新文章

  1. 深度学习之单目深度估计:无监督学习篇
  2. 脚本检测到文件特定词后做下一步动作 down restart
  3. 使用 QEMU 进行系统仿真
  4. python学成需要多久-小白学python怎么快速入门?多久能完成一个项目?
  5. 【学习笔记】JS进阶语法一事件进阶
  6. [云炬创业基础笔记]第七张创业团队测试5
  7. react-navigation 跨 tabs 返回首页
  8. html 拖拽坐标,Html+css实现拖拽导航条
  9. IDEA(2021)最全常用快捷键《必须收藏》
  10. PyTorch 1.0 中文文档:torch.nn.init
  11. 隐藏与显现_原神:芭芭拉的隐藏彩蛋你知道吗?对着游戏npc用技能就可显现
  12. 10寸 nuc972_新唐ARM9之NUC972学习历程之系统的搭建和BSP包的使用
  13. Intelliok IDEA的Monokai主题
  14. WPF实现鼠标拖动框选功能
  15. 电脑解锁后黑屏有鼠标_电脑开机后黑屏只有一个鼠标箭头怎么办_win10屏幕黑屏就剩鼠标如何修复...
  16. 无需编码,可一键生成前后端代码,少写80%的代码!
  17. 彻底关闭WINDOWS默认共享的4种方法
  18. 苹果手机屏幕如何投射到win10?
  19. 电脑Mac地址更改后有什么害处?怎么改回原来的?
  20. 纪中训练5月23日提高组T1

热门文章

  1. angular蚂蚁_Angular 中后台前端解决方案 - Ng Alain 介绍
  2. boos里的AHCI RAID_安徒恩Raid删除,安徒恩讨伐战上线,详细攻略快速看,成为新的摸金圣地...
  3. 服务器磁盘阵列做win7系统,Raid0可以安装winxp-x86,但不能安装win7-x64,是怎么回事呢?!...
  4. python 图像分析自然纹理方向与粗细代码_python skimage图像处理(二)
  5. 服务器ip 计算机名,服务器计算机名称或者ip地址
  6. python类和对象课件_简单解释Python的类和对象
  7. linux cp 强制覆盖_Linux基本操作教程
  8. MyBatis的使用
  9. git 修改标签名称_Git常用命令汇总,希望能帮到你
  10. python的matplotlib背景线_python中matplotlib的颜色及线条 控制