美文网首页码农庄园
git hook自动发布代码

git hook自动发布代码

作者: 小马过河R | 来源:发表于2020-08-25 09:08 被阅读0次

前一阵子小马在深入学习CI、CD,几乎吐血。整理了一下最实用的一步基本功,git hook发布代码。

一、什么是git钩子

这点git和svn一样,都具备hook功能,使用也大相径庭,在特定的重要动作发生时触发自定义脚本。 有两组这样的钩子:客户端的和服务器端的。客户端钩子由诸如提交和合并这样的操作所调用,而服务器端钩子作用于诸如接收被推送的提交这样的联网操作

二、如何开启一个钩子

可以在钩子里写py脚本等自由实现各种git操作时需要做的动作。例如还可以根据tag版本来发布代码到不同的环境。

三、利用钩子实现发布代码

1、服务器端:首先在服务器端创建一个目录git-room,在该目录下创建裸版本库,比如git init -bare webroot.git。

2、服务器端:一鼓作气,在webroot该目录下找到hook目录,vim post-receive代开文件编辑钩子生效脚本,比如:

#!/bin/bash

git --work-tree=/home/website/webroot checkout -f

这里注意使用git init -bare而不是git init的区别,小马觉得当然也可以git init,但就是少了对目录的git操作限制,就不是很合理。--work-tree=/home/website/webroot   假定是我们指定的web站点目录。

其实就是一个避免git操作的限制

2、服务器端:创建一个web项目目录/home/website/webroot,在这个目录下克隆我们刚刚创建的远程版本库代码, git clone ssh://root@xxx.xxx/usr/local/git-room/webroot.git。

3、本地工作区:此时,在本地版本库工作区里开发,然后使用git push指令推送到远程裸版本库,钩子会post-receive自动生效,将文件检出到--work-tree目录里,即代码一经提交就会自动同步到web项目目录/home/website/webroot下。

OK,看起来似乎很简单。可拉倒吧,这就是一个示例,实际场景考虑的因素还有很多,比如文件授权等等...

Scrum敏捷开发:Git版本管理流程及规范 参考文章

参考文章:

利用Git钩子实现代码发布

相关文章

  • git hook自动发布代码

    前一阵子小马在深入学习CI、CD,几乎吐血。整理了一下最实用的一步基本功,git hook发布代码。 一、什么是g...

  • Git Hook

    git hook 通过在代码commit和push之前执行一个脚本,来实现一些检查性工作?。 在.git/hook...

  • 服务器自动打包发布shell脚本

    脚本功能简介 自动拉取Git服务器最新代码 服务器maven自动打包 自动重启发布jar项目 nohup 启动项目...

  • 利用 travis 实现自动部署到 google cloud

    目标 实现 git push 后,自动将代码发布到 google 云服务器 compute engine。其它服务...

  • git hook 自动部署

    创建远程仓库 在服务器clone一个仓库 为远程仓库编写hook post-receive 里的脚本 给post-...

  • git自动部署代码

    git自动部署代码服务器创建裸仓库: 配置自动部署代码的脚本: 权限问题:git:git nginx:www...

  • jenkins

    1. 从配置的git中拉取代码 2. 利用maven编译代码成jar包 3. Copy到需要发布的服务器自动发布 ...

  • git hook

    git hook https://git-scm.com/docs/githooks 什么是git hook g...

  • (转载)Git提交信息规范化

    Git提交信息规范化 目的 统一团队Git Commit标准,便于后续代码review、版本发布、自动化生成cha...

  • gerrit使用记录

    要像自动拉去钩子文件并能够自动放入.git/hook/目录下, 请使用ssh协议. http协议经测试不能成功. ...

网友评论

    本文标题:git hook自动发布代码

    本文链接:https://www.haomeiwen.com/subject/acrajktx.html