社区首页 >问答首页 >Git预推钩

Git预推钩
EN

Stack Overflow用户
提问于 2010-11-16 16:03:10
回答 7查看 85.8K关注 0票数 134

我想在每次git推送之前运行一个单元测试,如果测试失败,取消推送,但我甚至找不到预推钩子,只有预提交和预重基地。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2010-11-16 16:48:47

我宁愿在预提交钩子中运行测试。因为在提交时已经记录了更改。推送和拉取仅交换关于已记录的更改的信息。如果测试失败,那么您的存储库中就已经有了一个“损坏的”版本。不管你是不是在推它。

票数 3
EN

Stack Overflow用户

发布于 2013-02-03 13:17:13

票数 228
EN

Stack Overflow用户

发布于 2014-01-29 14:57:24

Git在1.8.2版本中获得了预推钩子。

预推钩子和预提交钩子都是我需要的。除了保护分支之外,它们还可以提供与预提交挂钩相结合的额外安全性。

以及如何使用的示例(从this nice entry获取、采用和增强)

登录流浪者,运行测试,然后推送的简单示例

代码语言:javascript
代码运行次数:0
复制
#!/bin/bash
# Run the following command in the root of your project to install this pre-push hook:
# cp git-hooks/pre-push .git/hooks/pre-push; chmod 700 .git/hooks/pre-push

CMD="ssh vagrant@192.168.33.10 -i ~/.vagrant.d/insecure_private_key 'cd /vagrant/tests; /vagrant/vendor/bin/phpunit'"
protected_branch='master'

# Check if we actually have commits to push
commits=`git log @{u}..`
if [ -z "$commits" ]; then
    exit 0
fi

current_branch=$(git symbolic-ref HEAD | sed -e 's,.*/\(.*\),\1,')

if [[ $current_branch = $protected_branch ]]; then
    eval $CMD
    RESULT=$?
    if [ $RESULT -ne 0 ]; then
        echo "failed $CMD"
        exit 1
    fi
fi
exit 0

正如您所看到的,该示例使用了一个受保护的分支,即pre-push钩子的主题。

票数 33
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4196148

复制
相关文章
冲刺预推免刷题复习小记
四道pat甲级链表题 1516. 共享 标记一下地址就可以 #include<bits/stdc++.h> using namespace std; const int N=1e5+10; int n,fir,sec,ne[N]; char e[N]; vector<int>a,b; int st[N]; int main(){ cin>>fir>>sec>>n; for(int i=1;i<=n;i++){ int add,next; char val;
glm233
2022/05/11
1760
2021年CS保研经历(四):西交软院预推免、信工所三室预推免
  预推免跟我预想的不太一样,原本以为会比夏令营好一些,但是大部分学校还是拒绝让我入营。
Cyril-KI
2022/07/29
1.1K0
看钩!assert/pytest-assume失败后截图
在使用pytest-assume的时候,它会等待测试函数执行结束才会抛出错误,这样我们可以执行更多,在最终的时候统一查看错误。
zx钟
2021/09/15
5750
冲刺预推免第一天刷题复习小记
四道pat甲级链表题 1516. 共享 标记一下地址就可以 #include<bits/stdc++.h> using namespace std; const int N=1e5+10; int n,fir,sec,ne[N]; char e[N]; vector<int>a,b; int st[N]; int main(){ cin>>fir>>sec>>n; for(int i=1;i<=n;i++){ int add,next; char val;
glm233
2021/08/10
2010
驱动开发:内核实现SSDT挂钩与摘钩
在前面的文章《驱动开发:内核解析PE结构导出表》中我们封装了两个函数KernelMapFile()函数可用来读取内核文件,GetAddressFromFunction()函数可用来在导出表中寻找指定函数的导出地址,本章将以此为基础实现对特定SSDT函数的Hook挂钩操作,与《驱动开发:内核层InlineHook挂钩函数》所使用的挂钩技术基本一致,不同点是前者使用了CR3的方式改写内存,而今天所讲的是通过MDL映射实现,此外前者挂钩中所取到的地址是通过GetProcessAddress()取到的动态地址,而今天所使用的方式是通过读取导出表寻找。
微软技术分享
2023/06/05
3060
驱动开发:内核实现SSDT挂钩与摘钩
驱动开发:内核实现SSDT挂钩与摘钩
在前面的文章《驱动开发:内核解析PE结构导出表》中我们封装了两个函数KernelMapFile()函数可用来读取内核文件,GetAddressFromFunction()函数可用来在导出表中寻找指定函数的导出地址,本章将以此为基础实现对特定SSDT函数的Hook挂钩操作,与《驱动开发:内核层InlineHook挂钩函数》所使用的挂钩技术基本一致,不同点是前者使用了CR3的方式改写内存,而今天所讲的是通过MDL映射实现,此外前者挂钩中所取到的地址是通过GetProcessAddress()取到的动态地址,而今天所使用的方式是通过读取导出表寻找。
微软技术分享
2023/10/11
2370
驱动开发:内核实现SSDT挂钩与摘钩
预解析
JavaScript 代码是由浏览器中的 JavaScript 解析器来执行的。JavaScript 解析器在运行 JavaScript 代码的时候分为两步:预解析和代码执行。
星辰_大海
2020/09/30
7360
红队免杀必会-进程注入--注册表-全局钩
进程注入 ,简而言之就是将代码注入到另一个进程中,跨进程内存注入,即攻击者将其代码隐藏在合法进程中,长期以来一直被用作逃避检测的手段.
Gamma实验室
2022/03/29
1.4K0
红队免杀必会-进程注入--注册表-全局钩
预解析
预解析 1.预解析的相关概念 JavaScript 代码是由浏览器中的 JavaScript 解析器来执行的。JavaScript 解析器在运行 JavaScript 代码的时候分为两步:预解析和代码执行。 预解析:在当前作用域下, JS 代码执行之前,浏览器会默认把带有 var 和 function 声明的变量在内存中进行提前声明或者定义。 代码执行: 从上到下执行JS语句。 预解析会把变量和函数的声明在代码执行之前执行完成。 2. 变量预解析 预解析也叫做变量、函数提升。 变量提升(变量预
清出于兰
2020/10/26
8990
C++ 中的预增(或预减)
theme: channing-cyan highlight: a11y-dark
鲸落c
2022/11/14
8020
RabbitMQ预取值
RabbitMQ的预取值(Prefetch Value)是指消费者在从队列中获取消息时,一次性获取的消息数量。通过设置合适的预取值,可以优化消息的分发和消费者的负载均衡。
堕落飞鸟
2023/05/16
1.4K0
js预解析
js引擎会把js里面所有的var 还有function 提升到当前作用域的最前面 预解析分为变量预解析(变量提升)和函数预解析(函数提升)
切图仔
2022/09/08
2.7K0
2020最新编辑器集成eslint、prettier、stylelint,git提交预检查代码配置
webstorm设置搜eslintr、eslint、stylelint,如果没有,搜plugin,安装prettier、eslint、stylelint
蓓蕾心晴
2020/09/24
2.8K0
2020最新编辑器集成eslint、prettier、stylelint,git提交预检查代码配置
RecyclerView预加载!
列表的内容是由服务器返回的分页数据,每次浏览到当前页的尾部,都会拉取下一页的数据。这中断用户的浏览,不免产生等待。产品希望让这个过程无感知。一种实现方案是预加载,即在一页数据还未看完时就请求下一页数据,让用户感觉列表的内容是无穷的。
用户9239674
2021/12/18
2.4K0
2021年CS保研经历(三):清华大学自动化学院大数据专硕预推免
  时间一晃到了九月份!夏令营结束后,八月份我也没有闲着,主要是在LeetCode上刷了很多题,为预推免的机考做准备。
Cyril-KI
2022/07/29
1K0
2021年CS保研经历(三):清华大学自动化学院大数据专硕预推免
图片预加载
背景 利用图片的预加载技术获得更好的用户体验 什么是有序预加载和无序预加载 jQuery插件的写法 图片预加载,预知用户将要发生的行为,提前加载用户所需的图片 网站loading页 image.png
达达前端
2019/07/16
2.3K0
图片预加载
jQuery预绑定
文章作者:Tyan 博客:noahsnail.com  |  CSDN  |  简书
Tyan
2022/05/09
5670
OBS推流
1.png 2.png 3.png 4.png 5.png
治电小白菜
2020/08/25
6.5K0
OBS推流
Angular 启用预加载
在使用路由延迟加载中,我们介绍了如何使用模块来拆分应用,在访问到这个模块的时候, Angular 加载这个模块。但这需要一点时间。在用户第一次点击的时候,会有一点延迟。
玖柒的小窝
2021/11/03
1.5K0
Angular 启用预加载
Vue 图片预加载
在媒体资源较多的情况下渲染页面,即使采用了CDN,但如果客户端受带宽限制,资源的加载会很慢。页面资源(通常是图片)加载慢会影响动画效果,甚至使页面看起来很卡顿。 为了解决这一问题,可以使用预加载的方式,在页面打开之前,提前将其所需的资源加载到浏览器缓存。 在Vue中,可以将预加载的操作放在合适的生命周期钩子函数内,比如在前一个组件挂载后就加载后一个组件所需的资源。以下是Vue3组合式api写法。
Libertyyyyy
2022/11/01
2.5K0

相似问题

为什么git没有预推钩?

23

预推git钩没有被拿起。

11

Git预推钩不起作用

39

将参数传递给git预推钩

12

Github网络钩-预推钩

33
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文