当 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 预提交钩子 的相关文章

  • 在 GitHub 上看不到“在 Xcode 中打开”按钮

    正如在GitHub 和 Xcode 9 中的新源代码管理工作流程 https developer apple com videos play wwdc2017 405 time 204Apple 视频会话 我们可以直接从 Xcode 克隆项
  • Git 将新的本地分支推送到远程,无需指定名称

    当针对特定的跟踪问题进行补丁修复时 我们的工作流程如下所示 1 git checkout patch git pull upstream patch make sure we re up to date 2 git checkout b i
  • 如何给 Git 控制台着色?

    我最近看到gitWindows 中的控制台是彩色的 例如绿色表示添加 红色表示删除等 我如何为我的颜色上色git这样的控制台 为了安装它 我使用了以下命令 sudo apt get install git core As noted htt
  • 在大型团队中使用 git VS Mercurial 和 Xcode 进行 iOS 开发有何优缺点?

    我们希望在一个项目上一起工作 签出 签入文件 一些开发人员推荐 git 其他开发人员更喜欢 Mercurial 有没有人对这两者都有经验 并且能告诉我为什么我应该花时间在不与 Xcode 集成的 Mercurial 上 而不是只使用集成的
  • Git 从不同的存储库中提取分支

    我当前的存储库中只有几个文件 我想合并来自不同存储库的远程分支 从中拉出并合并一个分支github com username code git 分支装载机 然后从中拉出并合并一个分支github com username code git
  • 是否可以在不从 git 克隆或拉取的情况下获取分支名称?

    我想获取 git 存储库的所有分支名称 目前 我克隆存储库 然后将它们获取到本地计算机上 这是低效的 因为我所需要的只是名称而不是其他 我想知道是否可以这样做 如果是这样 我可以使用什么命令 在本地 无需克隆 您可以键入 使用 gitls
  • Git 更新文件时更改默认 umask

    我的 Git 有问题 我在 Google 和 StackOverflow 中搜索了解决方案 但没有任何帮助 问题是 每次 git 更新工作目录中的某些文件时 当我签出分支或合并分支等时 文件权限都会更改 以便添加 可写到组 标志 如果该文件
  • Visual Studio 代码中的“Git:gpg 未能签署数据”

    全新安装 Linux 后 我尝试设置我的环境 并且不断收到Git gpg failed to sign the data在本地提交更改时出错 我使用的是 Visual Studio Code 专有版本 而不是开源版本 gitconfig u
  • Git fetch 在 for-each-ref 中不显示远程分支

    我有一个远程分支feature test2 我想把它拿过来 我跑 git fetch origin feature test2 我得到 From
  • 致命错误:找不到“Fabric/Fabric.h”文件

    我正在使用 xcode 6 3 1 OSX 10 10 3 并且我已经在本地系统上成功配置了 crashlytics 它工作正常 并通过 Fabric 应用程序发布构建 但是当我将相同的代码库转移到 teamcity 时 它向我显示以下错误
  • 将环境变量从 fastlane 传递到 Xcode 构建阶段脚本

    是否可以 如果可以 如何 将环境变量从运行 fastlane 的脚本传递到 Xcode 运行脚本阶段 我的最终目标是在运行脚本阶段读取当前的 git 分支名称 我们的 CI 由 Team Foundation Server 运行 它执行以下
  • 安装heroku toolbelt后出现Ruby错误

    我正在 win 7 32 位系统上使用 Heroku 但我没有管理员权限 我已经下载并安装了heroku工具带如下http community webfaction com questions 11803 heroku toolbelt h
  • 空提交的 Git 补丁

    我创建一个空提交 git commit allow empty m something important 有时它很有用 例如协调 2 个 或更多 不同的 git 树 然而 当我 git format patch 空提交被省略 因为它们不与
  • Git 和外部备份。子目录是空的,我宁愿它不是空的。

    我想使用 Git 创建外部备份系统 这部分是受到答案的启发在外部磁盘上备份整个 git 存储库的最佳方法是什么 https stackoverflow com a 4372855 2533127 其中建议如下 您还可以通过启动一个新的存储库
  • shell脚本响应按键

    我有一个 shell 脚本 本质上是这样的 while true do read r input if input a then echo hello world fi done 这一切都很好 但我刚刚意识到在这种情况下必须按 ENTER
  • 从 svn 到 git,移动了主干

    我正在尝试将 svn 存储库切换到 git 这是一个旧的存储库 以前的维护者之一为每个新版本移动了主干 例如 以前的存储库位于 svn ssh svn mycompany com project release 1 trunk 现在 我们当
  • 有没有办法显示 Visual Studio 执行的 Git 命令? [复制]

    这个问题在这里已经有答案了 在 Visual Studio Code 中 有一个 显示 Git 输出 菜单项 显示最近运行的 Git 命令 有关其外观的示例 请参阅3 35 在这个视频中 https code visualstudio co
  • 如何在cygwin下更改git中文件的大小写?

    我们在区分大小写 不敏感的混合环境 cywgin linux 中工作 今天有人通过重命名文件 将 S 更改为 s 对我们的工作流程造成了小破坏 这导致了各种有趣的跨分支合并问题 而且说实话 没有人完全确定发生了什么 在 cygwin 的 g
  • 获得干净的 git 沙箱的最有效方法是什么?

    对于我的持续集成构建 我想确保我的 git 沙箱中没有存放任何杂散文件 并且没有任何文件被无意中更改 我知道关于git reset hard HEAD 这解决了部分问题 但我想我想做的是删除所有未跟踪和忽略的文件 我可以用蛮力的方式做到这一
  • 使用 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