当 var_dump 存在时中止 git 预提交钩子

2024-01-04

我正在尝试(但惨败)创建一个 git 预提交钩子,用于检查修改后的文件中是否存在 var_dump,如果找到则退出。我遇到的问题是它似乎总是中止提交。这是我的预提交文件的内容:

VAR=$(git diff | grep -w "var_dump")
if [ -z $VAR ]; then
  echo "You've left a var_dump in one of your files! Aborting commit..."
  exit 1
fi

首先,请注意简单的git diff给出了工作树和索引之间的差异(即仍然可以暂存的内容),而不是即将提交的内容。使用git diff --cached看看即将发生什么。

我在实验时遇到的第二件事是使用if [ -z $VAR ]直接抛出错误,因为+在开始的时候git diff输出由 Bash 解释。确保包围$VAR用引号来防止这种情况发生。

至于脚本,您忘记了否定测试,如果$VAR是空的。如果 grep 的输出为空,则未找到“var_dump”,并且挂钩应返回成功。你想要的情况是如果是not空,意思是“var_dump”was找到了,它应该中止提交。

全部一起:

VAR=$(git diff --cached | grep -w "var_dump")
if [ ! -z "$VAR" ]; then
  echo "You've left a var_dump in one of your files! Aborting commit..."
  exit 1
fi 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当 var_dump 存在时中止 git 预提交钩子 的相关文章

  • 在 bash 脚本中使用源时出现“源:未找到”错误

    我正在尝试编写 我认为的 一个简单的 bash 脚本 它将 运行 virtualenv 以 1 美元创建一个新环境 激活虚拟环境 做更多的事情 安装 django 将 django admin py 添加到 virtualenv 的路径等
  • Spring Cloud Config - 不允许使用 git-upload-pack

    我有一个在 docker 环境中运行的 spring boot 应用程序 它连接到 Git 存储库以获取应用程序的配置 我的问题是 当尝试获取 properties 文件时 应用程序有时会出错 这很奇怪 因为如果我更改用户和密码 同一个应用
  • GIT 和 Ruby:如何从 ruby​​ 脚本内部取消设置 GIT_DIR 变量?

    我编写了一个非常简单的 部署 脚本作为我的post update挂钩到我的裸 git 存储库中 变量如下 live domain mydomain com staging domain stage mydomain com git repo
  • http.h:6:23: 致命错误:curl/curl.h:没有该文件/目录

    我在 CentOS 7 中下载 git 包 wget https www kernel org pub software scm git git 2 0 1 tar gz tar xzf git 2 0 1 tar gz 当我编译git时
  • 合并 BPM 图表的最佳实践

    我们在 Java 环境中使用 Alfresco 活动图 这些图是有版本的 我们确实使用 GIT 我们经常会遇到合并分支的合并冲突 解决这个问题确实很痛苦 因为我们必须比较文件的文本内容来检查差异 有时 重新应用更改比合并更轻松 是否有合并此
  • 如何停用 Xcode git 功能? (删除 git 集成)

    我的 Xcode 项目位于 git 上 但我不喜欢 Xcode git 集成 有时 我有来自 Xcode 的错误 https stackoverflow com questions 7388560 error fatal not a git
  • 并行运行 shell 脚本

    我有一个 shell 脚本 打乱大型文本文件 600 万行和 6 列 根据第一列对文件进行排序 输出 1000 个文件 所以伪代码看起来像这样 file1 sh bin bash for i in seq 1 1000 do Generat
  • 为什么cherry-pick 告诉我所有行都已更改?

    Updated 考虑文件 abc 在提交 A 和 B 中都相同 begin 123 456 789 klm end 在A中 我们重构第一行123 gt AAA并在结果之上选择 B Git 告诉我们all lines in the file
  • Smartgit:自动插入提交消息

    有没有办法使用钩子脚本在 Smartgit 中自动插入提交消息 重击 如果用户提交了他的更改 我想预加载提交消息字段 我没有看到任何SmartGit配置 http www syntevo com smartgit documentation
  • 合并后 Git 分支和提交历史记录

    我正在开发一个项目 单独 对于我开发的每个功能 我都会创建一个新分支 处理该功能 然后将其合并到 master 中 所以通常我不会同时在两个不同的分支上工作 也不会在一个分支上工作时接触master 当我合并一个分支时 我看到 使用gitx
  • 终端关闭时 bash 收到的信号

    使用 trap 来捕获信号 如下所示 i 1 while i lt 33 do trap echo i gt gt log txt i done 并强行关闭终端 那么log txt中的内容就是 redhat linux下 1 18 1 17
  • 删除 Xcode 项目的源代码控制

    我在 Xcode 项目上使用源代码控制已经有一段时间了 但现在我不想使用源代码控制 如何从 Xcode 中的项目中删除源代码控制 有三种方法 方法 1 将禁用所有项目的源代码管理 方法 2 将删除所有项目的单个存储库的链接 方法 3 将删除
  • 结帐时出现 Git 错误:“致命:引用不是树”

    当我决定弄清楚为什么我正在从事的项目如此重要时 这一切就开始了 我运行了以下脚本 git rev list objects all git cat file batch check objecttype objectname objects
  • 如何使用 mediawiki 的 api、curl 和 bash 登录?

    我对流程的理解 来自 mediawikis 登录手册https www mediawiki org wiki API 登录 https www mediawiki org wiki API Login 使用 MediaWiki 的 Web
  • 如何在源代码管理中存储 Visual Studio 的调试配置

    Visual Studio 的调试配置存储在 user文件是用户特定的并且传统上被源代码管理忽略 我对工作目录参数感兴趣 我需要它在程序员的机器上保持一致 并且它具有以下价值 outDir而不是默认的 ProjectDir 我怎样才能解决这
  • git am 和 git apply 有什么区别?

    Both git am https git scm com docs git am and git apply https git scm com docs git apply可用于应用补丁 看起来git am自动提交 而git apply
  • 在 python 中找不到 git 可执行文件

    我试图使用访问密钥克隆 git 存储库 但是当我尝试运行它时 它抛出一个异常 说找不到 git 可执行文件 但我已经安装了 git 并且 in it py 显示了正确的路径 C Program Files Git bin 我还安装了 git
  • git merge --squash 和 gitcherry-pick 有什么区别?

    如果我在标准的主功能工作流程中工作 那么将功能分支压缩到主功能分支和将其挑选到主功能分支之间有什么区别 分支示例 m1 m2 master f1 f2 feature 我认为两者都有相同的输出 即 m1 m2 m3 master f1 f2
  • 使用nodegit切换分支/标签

    我整个早上都在尝试打开现有的存储库并使用 nodegit 更改分支或标签 文档内容很丰富 但似乎已经过时了 关于我做错了什么有什么想法吗 var NodeGit require nodegit var open NodeGit Reposi
  • Git 实验分支还是单独的实验存储库?

    我正在开发一个 Android 应用程序 并且在整个开发周期中一直使用 Git 现在 我想构建并发布实验性功能 供人们尝试和安装 同时仍将原始的 稳定的应用程序安装在他们的设备上 现在 这意味着我需要使用不同的包名称 这会更改开发项目中的一

随机推荐

  • Android:onCreateOptionsMenu() 项目操作

    我有一个通过以下方式创建的菜单 Override public boolean onCreateOptionsMenu Menu menu menu add Email return super onCreateOptionsMenu me
  • 迁移到 Thymeleaf 3 后,Thymeleaf 停止解析布局模板

    我有一个简单的 Spring Boot 应用程序 版本为 1 5 7 我正在尝试将其迁移到版本 2 0 0 我快完成了 但还缺少最后一块 那就是百里香叶 旧版本中一切正常 但迁移后 Spring Boot 停止解析任何模板 页面和电子邮件
  • 如何使 Django 注释在“用户”字段上使用 select_lated() ?

    我在用着Django 评论框架 https docs djangoproject com en dev ref contrib comments 所有评论均由经过身份验证的用户发布 在评论附近 我使用显示一些用户个人资料信息 comment
  • 警报管理器的替代品 - Android

    说真的 执行应用程序未运行时发送通知等简单任务的解决方案是什么 使用具有自定义操作系统的设备 例如小米 设置闹钟后 它会在短时间内 例如几分钟 起作用 但不会在 例如几小时 长时间内起作用 尽管它在某些设备上以及应用程序运行时工作得很好 我
  • 使用 KnockoutJS 和简单类继承时丢失对 self 的引用

    我在用John Resig 的 简单 JavaScript 继承 http ejohn org blog simple javascript inheritance 创建一个可以继承的类 我还使用 KnockoutJS 来计算可观察量 问题
  • Java使用反射调用类的main()方法

    我需要使用反射从另一个主方法调用 Java 类的主方法 必须使用反射 以消除被调用的主类的编译时依赖 直接的方法不会产生影响 因为它只识别 公共 和 非静态 方法 建议 不应该比调用任何其他函数更复杂 public static void
  • 如何在mvc 3中使用jquery互相填充级联下拉列表?

    asp net mvc3如何互相加载级联dropdownlist 我能怎么做 我一直在利用http geekswithblogs net ranganh archive 2011 06 14 cascading dropdownlist i
  • Docker 中的小写镜像名称

    为什么 Docker 只允许镜像名称使用小写字母 为什么不用大写字母 在容器提交期间 docker commit OPTIONS CONTAINER REPOSITORY TAG 这是一个设计选择 技术上 允许混合大小写名称可能不会有任何实
  • React、Sass,从 .scss 文件导入 img 时出现错误

    我想设置一个简单的背景图像 并覆盖 sass 文件中的反应组件 但我收到此错误 Module not found You attempted to import assets hero jpg which falls outside of
  • symfony2.1 捆绑版本混乱,针对 symfony 和 sonata admin / knp 菜单捆绑

    我想在新项目中使用 symfony2 1 我尝试用composer安装symfony2 但是存在多个错误 问题 因此我对每个问题也有疑问粗体字体样式 有时我不知道我是否以正确的方式做事 我想使用稳定版本 所以我选择了 2 1 0 版本而不是
  • 如何在 ReactJs 中加载 WebGL 顶点和片段着色器?

    让我先提出我的问题 然后分享相关细节 有没有一种方法可以在 ReactJS 中使用 加载 修复解析错误 WebGL 着色器 有可用的装载机吗 经过几个小时的努力 在谷歌上搜索了一种能够使用着色器文件 即顶点和片段着色器 的方法 我还没有找到
  • 稍后可以在领域中更改主键吗?

    我在本地设置了一个临时主键并将对象保存到领域 稍后服务器为该对象分配一个唯一键 然后我想更新该对象的主键 那么是否可以为对象重新分配主键呢 当我们为对象重新分配主键时会发生什么 它会用旧的主键保存对象吗 可以将主键的值更改为最高 Realm
  • 将文本限制为 angular.js 中的特定语言字符

    我正在使用 angular js 构建一个表单 我的表格看起来像
  • 在本机反应中打开地图/谷歌地图

    我正在尝试打开谷歌地图或我的地图react native应用 当我在 iPhone 模拟器上运行该应用程序时 我收到此错误 Don t know how to open URI 我做错了什么 My code openGps var url
  • MongoDB 中的changeStream 和tailable 游标有什么区别

    我试图确定变更流之间的区别 https docs mongodb com manual changeStreams https docs mongodb com manual changeStreams https docs mongodb
  • 如何修复 RN 突然无法找到本地模块(无法解析模块)?

    我遇到了一个奇怪的情况 突然我的 RN 应用程序无法加载任何场景 该应用程序已经运行良好数周了 我没有移动任何文件 失败 error bundling UnableToResolveError Unable to resolve modul
  • 嵌入式系统的时间戳

    我想为嵌入式系统 运行 ArchLinux 的 Raspberry Pi A 上的传感器测量添加时间戳 我发现了time from time h但它给了我 第二个 分辨率 我至少需要 毫秒 系统将运行几个小时 我不担心长时间的漂移 我怎样才
  • 什么是多态 lambda?

    lambda 匿名函数 的概念对我来说非常清楚 我知道类方面的多态性 运行时 动态分派用于根据实例的最派生类型调用适当的方法 但 lambda 到底如何才能是多态的呢 我是另一位试图了解更多有关函数式编程的 Java 程序员 您会发现我在下
  • Python HTML 抓取

    这并不是真正的抓取 我只是想在网页中找到该类具有特定值的 URL 例如 a class myClass href url 7df028f508c4685ddf65987a0bd6f22e 我想获取href值 关于如何做到这一点有什么想法吗
  • 当 var_dump 存在时中止 git 预提交钩子

    我正在尝试 但惨败 创建一个 git 预提交钩子 用于检查修改后的文件中是否存在 var dump 如果找到则退出 我遇到的问题是它似乎总是中止提交 这是我的预提交文件的内容 VAR git diff grep w var dump if