Git Hook 是 Git 提供的一个钩子,能被特定的事件触发后调用。其实,更通俗的讲,当你设置了 Git Hook 后,只要你的远程仓库收到一次 push 之后,Git Hook 就能帮你执行一次 bash 脚本。

在远程服务器上,首先新建一个Git库,进入目录/root

cd /root

mkdir testRepo

cd testRepo

git init --bare

在远程服务器再初始化一个普通的本地Git仓库,这个本地仓库的作用是拉取远程的仓库

cd /var/www/                   #进入远程项目根目录

git clone /root/testRepo    #复制自己的上述的git库

编辑bash,编辑给自己的Git添加一个hook(可以理解为一个回调)

cd /root/testRepo/hooks

vim post-receive   #如果没有这个文件,新建一个

编辑这个文件

#!/bin/sh

unset GIT_DIR

cd /var/www/testRepo

git add . -A && git stash

git pull origin master

记得为添加可执行的权限

chmod +x pose-receive

在你的本地仓库(本机)

建立与远程Git仓库的链接

git remote add test(可以根据需要命令,是远程仓库的一个标识) 主机用户@服务器的IP:/root/testRepo

建立链接成功以后,本地开发的修改可以通过以下的方式推送到远程服务器上:

git push test master

当远程服务器的Git仓库收到push过来的改变的代码时,会自动回调hook,执行/root/testRepo/hooks/post-receive里面的脚本

git pull origin master

因为我们远程部署的项目是从/root/testRepo 直接clone的,所以会从/root/testRepo拉取最新的代码,从而更新我们服务器部署的项目/var/www/testRepo。

Git hook实现自动部署的更多相关文章

  1. gitblit git SERVER window 安装配置 hook post-receive 自动部署

    项目中使用的是gitblit windos版 1.安装 需要JAVA SDK http://gitblit.com/Download Gitblit GO (Windows) 下载后,解压缩,放到例如 ...

  2. git管理和自动部署项目

    当一个项目需要纳入到版本控制的时候,选择的工具还是比较多的,最常见的就是工具有CVS,SVN,GIT等.在平时的开发中视情况而定,从来就没有最好的版本控制工具,只有最适合的工具.在这里我习惯用git来 ...

  3. 用 Git Hooks 进行自动部署

    原文发表于 http://ourai.ws/posts/deployment-with-git-hooks/ 昨天开始接手开发公司前端团队的主页,在稍微修改点东西后推送到远程仓库想看下线上结果时发现并 ...

  4. 搭建Git服务器环境----Git hooks代码自动部署

    引言:自己想搭一套git的服务端环境,不想用github码云等.经多方资料整合,实验总结,以下是亲测有效的方式.可用于公司日常开发 一.搭建Git环境 ① 安装 Git Linux 做为服务器端系统, ...

  5. jenkins maven git windows code 自动部署

    本人刚刚接触  写的不好就对付看看吧 哈哈哈O(∩_∩)O哈哈~ 最近看见别人弄得自动部署 自己也是手痒痒 也想弄一个 所以就弄了一个 windows的 我用的是https的  在网上看了很多都是 s ...

  6. CentOS配置git和maven自动部署java

    #安装Git yum install git #测试是否成功 git -version #正确 #git version 1.7.1 #配置git config --global user.name ...

  7. git push后自动部署

    前提,服务器已经装好ssh,本地也已经将ssh 公钥传到服务器对应位置 先用 pbcopy < ~/.ssh/PRIVATE_KEY.pub 将公钥复制到剪贴板:通过 ssh USER@SERV ...

  8. centos 安装git服务器,配置使用证书登录并你用hook实现代码自动部署

    安装git服务器先安装依赖软件:yum -y install gcc zlib-devel openssl-devel perl cpio expat-devel gettext-devel open ...

  9. **使用 Git Hook 实现网站的自动部署

    http://www.tuicool.com/articles/3QRB7jU 自动化能解放人类的双手,而且更重要的是,因为按照规定的流程来走,也减少了很多误操作的产生.不知道大家平时都是怎么样更新自 ...

随机推荐

  1. NSRange 用法

    NSRange的定义 typedef struct _NSRange { NSUInteger location; NSUInteger length; } NSRange; NSRange是一个结构 ...

  2. JAVA正则表达式 Pattern和Matcher

    java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包. 1.简介:  java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包. ...

  3. Spring 数据库连接(Connection)绑定线程(Thread)的实现

    最近在看spring事务的时候在想一个问题:spring中的很多bean都是单例的,是非状态的,而数据库连接是一种有状态的对象,所以spring一定在创建出connection之后在threadloc ...

  4. HierarchyID 数据类型用法

    树形层次结构(Hierarchy)经常出现在有结构的数据中,T-SQL新增数据类型HierarchyID, 其长度可变,用于存储层次结构中的路径.HierarchyID表示的层次结构是树形的,由应用程 ...

  5. 优化 or 语句

    mysql 演示数据库:http://downloads.mysql.com/docs/sakila-db.zip 对于 or  语句,如果要利用索引,则 or 之间的每个条件都必须有索引 renta ...

  6. Java基础——反射 reflect

    什么是反射 (1)Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称 ...

  7. 云计算之路-阿里云上:部分服务器未及时续费造成docker swarm集群故障

    非常非常抱歉,由于我们的疏忽 —— docker swarm 集群中的 2 台服务器没有及时续费,造成在夜里0点被自动关机,从而引发整个 docker swarm 集群故障,造成今天凌晨 0:30 ~ ...

  8. mybatis传参的几种方式

    1,@Param @参考文章 @Select("select s_id id,s_name name,class_id classid from student where  s_name= ...

  9. linkin大话数据结构--List

    List:Collection子接口 List是有序的集合,集合中每个元素都有对应的顺序序列.List集合可使用重复元素,可以通过索引来访问指定位置的集合元素(顺序索引从0开始),List集合默认按元 ...

  10. 关于 tomcat 配置时遇到的问题与警告及解决办法

    首先,我们在日常配置 tomcat 时,总是会遇到这样的问题: 有时候我们会重新头来配置 tomcat,但是现在我们并不需要那么做,方法很简单,请继续往下看: 这个问题是告诉我们 tomcat 在 4 ...