绕过合并提交的预提交挂钩

2024-01-12

我设置了一些 git hook 来运行一些gulp预提交命令。我基本上是跑步jshint/plato。我基本上想在两种情况下绕过这些:

  1. 修补程序分支(主/修补程序)
  2. git merge (或者找到一种在合并提交情况下不会崩溃的方法)

plato gulp 命令对源运行分析并生成一个 /reports/ 目录,用于跟踪一段时间内的复杂性。如果我们在修补程序分支上执行此操作,则在将它们合并回开发时会导致合并冲突。这里已经足够谈论简单的钩子了:

#!/bin/sh

if git diff --cached --name-only --diff-filter=ACM | grep '.js$' >/dev/null 2>&1
then
  git stash -q --keep-index
  ./node_modules/.bin/gulp jshint
  RESULT=$?
  git stash pop -q
  [ $RESULT -ne 0 ] && exit 1
  git stash -q --keep-index
  ./node_modules/.bin/gulp plato
  git add report/
  git stash pop -q
fi

exit 0

现在的问题是,如果我在“报告”上存在合并冲突并且我解决了合并问题All conflicts fixed but you are still merging.然后提交,它再次运行分析并暂存提交,当提交时它会抛出错误:

/Users/Nix/work/project/.git/modules/somesubmodule/MERGE_HEAD' 供阅读:没有这样的文件或目录。

该目录确实存在,但没有合并头...


所以我刚刚找到了一个我认为可以用来检测“merge_head”的命令

 git rev-parse -q --verify MERGE_HEAD

如果 rev-parse 返回一个哈希值,则意味着我们当前处于合并状态。我可以用它来绕过这个逻辑。但会等待更有经验的人提供更好的建议。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

绕过合并提交的预提交挂钩 的相关文章

  • 使用 SourceTree 克隆存储库

    有人可以给我一个简单的使用 SourceTree 克隆存储库的快速演练吗 在书签中 我单击克隆存储库 对于源路径 我粘贴如下所示的 URL 电子邮件受保护 cdn cgi l email protection 客户端 应用程序名称 ios
  • git update-index --no-assume-unchanged 不起作用

    我设置了assume unchanged咬了几个文件 现在我想取消它们 但这不起作用 gt git update index no assume unchanged Gemfile gt git ls files v grep Gemfil
  • GitHub - 指定时间的存储库状态

    我是使用 git 版本控制工具的初学者 我想在指定时间 例如 2013 年 10 月 5 日 下载存储库状态 文件 我怎样才能做到这一点 截至 2019 年 5 月 不确定何时引入 您可以简单地按以下格式添加日期 HEAD 2019 04
  • git 从存储中删除文件

    我有一个藏匿处 里面有一堆文件 但由于文件冲突 我无法应用我的存储 我已经在我的存储中发现了有问题的文件 我想将其删除 如何从存储中删除单个文件而不破坏整个文件 存储是一次提交 或者实际上是两次甚至有时是三次提交 并且您无法更改提交 那么
  • 如何使用 git-tfs 清理损坏的历史记录

    我不确定我是如何进入这种状态的 但我的 tfs 默认远程分支中有一些 TFS 中不存在的提交 所以我想摆脱它们 所以我的历史是这样的 A B C D tfs default 但提交 B 和 C 实际上并不是 TFS 中的变更集 因此 当我签
  • Git rebase --继续而不打开编辑器

    调用时git rebase continue在正常的变基冲突之后 编辑器 GIT EDITOR 打开并要求修改提交消息 因为提交消息可能包含前导 所以这可能会失败 export GIT EDITOR true git rebase cont
  • Git 分支之间未跟踪的文件

    我一直在这里寻找答案 看来我可能只是对 git 分支应该如何工作做出了错误的假设 我有我的master分支 我创建了一个名为的功能分支profiles我正在对个人资料进行一些特定的工作 在处理配置文件时 我更改了 5 或 6 个文件 并添加
  • 如何在Git中手动合并所有文件?

    我想合并所有文件manually有了 meld 或任何其他 diff 工具 我如何使用 Git 来做到这一点 当我跑步时git mergetool它说no files need merging 所以我想只有当我有冲突时我才能做到这一点 有更
  • 设置单独的遥控器以仅推送和拉动子文件夹

    假设我有两个存储库 repo A and repo B 其中包含一个文件夹 其中的代码与存储库 A 中的代码类似 这实际上如何发生并不重要 但是好吧 让我们假设我刚刚从 A 复制了内容 现在我想要以下内容 就像我在 repo A 中习惯的那
  • Git-svn:批量删除孤立的远程分支

    我正在处理的 SVN 项目 通过 git svn 有经常创建的分支 然后与主干重新集成 然后删除 现在项目大约有10个分支没有被删除 但是在git中 gitbranch r显示大约有50个 我可以一次删除这些 检查它们是否仍然存在于 svn
  • 如何从 git 存储库中删除作者?

    如果我创建一个 Git 存储库并公开发布它 例如在 GitHub 等上 并且我收到存储库贡献者的请求 无论出于何种原因删除或隐藏他们的名字 有没有一种方法可以轻松做到这一点 基本上 我有这样的请求 可能想将他们的姓名和电子邮件地址替换为 匿
  • 无论我做什么,我都无法推送我的代码并不断收到相同的错误

    我正在尝试将代码推送到远程分支 但不断收到此错误 rejected non fast forward error failed to push some refs to email protected cdn cgi l email pro
  • 如何更新我的裸存储库?

    我创建了一个裸存储库来发布我的存储库 但我不知道如何使用主存储库的当前状态更新裸存储库 如果您想复制主存储库中的所有对象 请在主存储库中执行此操作 git push all
  • 自给定提交以来 git 中的作者列表

    我想要一种列出所有 git 作者的方法 仅自给定提交以来 是独特的 这两个很简单 我在网上看到过一些解决方案 大多数使用git log format 但我看到的都不符合附加要求 按提交日期排序 因此 如果约翰 史密斯 John Smith
  • 从“git diff”中排除文件

    我正在尝试排除一个文件 db irrelevant php 来自 Git diff 我尝试将文件放入db子目录名为 gitattributes与线irrelevant php diff我还尝试创建一个名为 git info attribut
  • 是否可以使用“最小”算法进行交互式添加?

    当从快照计算变更集时 Git 并不总是正确选择块边界 git diff has a diff algorithm允许在这方面进行一些调整的选项 git diff minimal有时会给出比git diff alone 有没有办法获得相同的优
  • 如何修复 Centos 上的 Git Segmentation 错误

    我收到分段错误错误 无法在服务器上提取代码 Centos 7 这就是我遇到错误的方法 通过使用以下命令来验证我的服务器是否使用 bitbucket 进行身份验证 ssh T email protected cdn cgi l email p
  • 如何让“git status”始终使用短格式?

    我想要git status始终使用短格式 git status short M file1 M dir file2 file untracked3 dir file untracked4 似乎不存在这方面的配置选项 并且git config
  • Git 查找第一个非本地提交

    有关的 列出尚未推送到源的 Git 提交 https stackoverflow com questions 3080509 list git commits not pushed to the origin yet git rev par
  • 本地分支显示在 GitHub 的“网络”视图上

    我们使用 Git 我们的工作流程由 dev 和 master 分支组成 它们位于 GitHub 和每个开发人员的本地存储库上 不会直接在 master 或 dev 上执行任何工作 而是在本地分支中执行工作 并且仅在 dev 上进行合并 然后

随机推荐

  • Objective-C/iPhone 开发中的延迟实例化

    简单的问题 我知道 Objective C 中所有属性都以 nil 开头 并且向 nil 发送消息不会执行任何操作 因此您必须使用 Class alloc init 进行初始化 在向新创建的属性发送消息之前 但是 如果我不向此属性发送消息或
  • Django JSON 字段。 “模块”对象没有属性“JSONField”

    我正在学习 Django 并因在模型中创建 json 字段而感到沮丧 我试图在模型中创建一个 json 字段 但出现错误 模块 对象没有属性 JSONField 这是我在 models py 中的类 class Question model
  • 使用 Azure Function v2 自定义 Application Insight TelemetryInitializer

    在 Azure 函数中 我们使用 NET HttpClient 类 Azure Servicebus SDK 和 Azure 存储 SDK 发出多个请求 所有内容都通过 Application Insight 日志记录中的构建完美记录 显示
  • 在 Internet Explorer 中是否有理由用 Script 替换 JavaScript?

    那么 当 JScript 与 JavaScript 不同时 IE 如何解释 jQuery 以及所有其他 JavaScript 将 IE 的 JavaScript 替换为 JScript 是否更好 是否存在性能差异 JScript 和 Jav
  • 正则表达式匹配后面没有任何内容的字符串

    我试图找出一个正则表达式序列 该序列将匹配下面列表中的第一项 但不匹配其他两项 Some Folder 是可变的 http www url com Some Folder http www url com Some Folder thing
  • R Shiny:修改选择后保留无功输入值

    我试图在用户修改另一个中的选择后将用户选择的值保留在动态生成的 selectInput 中selectInput multiple T 选项 每当我修改我的选择时 所有动态生成的值都会重置 例如 我首先从 Letters selectInp
  • 如何从 CursorAdapter 重写 getItemId(int pos) 方法?

    由于此处的另一个答案 我收到了这个问题 但没有解释如何执行我所要求的操作使用自定义适配器时如何获取 onItemClick ListView 中行的 id https stackoverflow com questions 4826683
  • 如何通过双击关闭 DateTimePicker

    我正在使用 jQuery DateTimePicker 插件 作者 特伦特 理查森 http trentrichardson com 并且只有在您选择日期和时间后才会关闭 然而 有些用户并不关心时间 他们希望日历在仅选择日期后关闭 我仅在选
  • React 的新上下文 api 与酶

    我一直在使用酶并且非常喜欢它 它适用于 React 16 直到我想测试使用 React 新上下文 api 的新项目 如果我仅使用浅层渲染我的基本组件并使用控制台记录组件的调试 我可以看到其内容 但是当我将新的上下文 api 与提供者和消费者
  • 接收 Websphere MQ 消息时如何执行显式 ACK?

    我有一个应用程序正在侦听 IBM Websphere MQ 队列上的消息 一旦消息被使用 应用程序就会执行一些处理逻辑 如果处理完成正常 我希望应用程序确认该消息并将其从队列中删除 如果处理时发生错误 我希望该消息保留在队列中 这是如何实施
  • 使用 CMake 时检测 Visual Studio 中的构建类型(调试/发布)

    我有一个小游戏引擎 在调试或发布模式下构建时需要定义一些自定义宏 以下是我的 CMake 脚本的几行 应该可以做到这一点 if CMAKE BUILD TYPE STREQUAL Debug set OE BUILD TYPE DEFINE
  • 扩展 Vue 生命周期钩子

    我有一个特殊的应用程序 我想在安装每个组件时对其运行一个方法 所以我可以将该方法作为全局 mixin 或其他东西 然后简单地执行 mounted this mySpecialMethod 但是 我想知道是否可以简单地扩展 Vues 挂载钩子
  • 获取文件“上次保存者”属性而不更改它

    我尝试使用 PowerShell 中的代码行获取文件的属性 所有者 file networkshare directory file doc Get ItemProperty Path file Format list Property F
  • 引用 groovy 变量作为 JSON 路径的一部分

    我在 Ready API 测试用例中使用 groovy 脚本来验证 json Web 服务响应中的结果 我想使用一个变量 在数据源中指定 来指定我想要验证的 json 路径 因为这可能会因每次测试运行而改变 以下代码正确地将路径 resul
  • kivy + android 意图过滤器

    我对 kivy 和 python 很陌生 所以我可能已经陷入了困境 但我试图弄清楚如何获得 android 意图并在简单的 kivy 应用程序中使用它 所以我目前正在尝试找出基本的设计元素以及如何让东西发挥作用 我希望能够点击一个链接 例如
  • .NET 最好的文字处理组件是什么[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个 NET 文字处理组件 其作用类似于我的 WinForm WPF NET 应用程序中的嵌入式 MS Word 主要目标是让用
  • 在 Cython 中返回结构体数组

    我试图在 Cython 中返回一个结构数组 pyx from libc stdint cimport uint8 t cdef extern from
  • AngularJs 和 Facebook 评论

    我正在尝试在我的 html 上动态更新 facebook 的评论 但是没有显示 请关注我的 Plunker 可以做什么来提交评论 http plnkr co edit ggt7r0 var app angular module plunke
  • SOAP 错误:正在解析 WSDL:无法从 加载

    在 PHP 中 我收到错误 SOAP 错误 正在解析 WSDL 无法从 加载http xxx xxxx asmx WSDL http xxx xxxx asmx WSDL 无法加载外部实体 http xxx xxxx asmx WSDL h
  • 绕过合并提交的预提交挂钩

    我设置了一些 git hook 来运行一些gulp预提交命令 我基本上是跑步jshint plato 我基本上想在两种情况下绕过这些 修补程序分支 主 修补程序 git merge 或者找到一种在合并提交情况下不会崩溃的方法 plato g