在“git revert --continue”期间绕过预提交挂钩

2024-06-28

我当时正在做一个git revert(之前的恢复),这导致了一些合并冲突。 解决冲突后,我的预提交挂钩引发了一些代码嗅探器问题。

由于这些代码嗅探器通知已在其他地方修复,我想在此时使用绕过预提交挂钩git revert --continue --no-verify, 显然git revert没有--no-verify子命令。

git revert确实有一个--no-commit子命令,但这不能与以下命令结合使用--continue.

我最终重命名了pre-commit文件,但出于好奇。此时是否有更好的方法来绕过预提交挂钩?


更换挂钩

如果您能够更改hooks,你可以只添加一个切换 https://stackoverflow.com/a/51665074/10095231对于每个 一。或者只是使用脚本临时重命名给定的hook, 正如评论的 https://stackoverflow.com/questions/32562125/bypass-pre-commit-hook-during-git-revert-continue#comment52980136_32562125.

无论哪种方式都会有选择地跳过有问题的hook同时让 其他运行正常。这确保了其他检查的发生(如果存在), 例如提交消息验证commit-msg hook.

承诺

如果这不适用,还有一个替代方案:

通常,当操作因冲突而停止时,修复它后您可以 赶紧跑

git commit

代替

git $operation --continue

这适用于revert, merge, cherry-pick可能还有其他人(尽管 在rebase它的行为可能有所不同,因为它是一系列操作)。

因此,如上所述,要绕过hooks,你只需添加--no-verify:

git commit --no-verify

Note:上面的功能似乎没有记录,但它 WorksForMe(tm)。

从差异strace git commit and strace git revert --continue, 这 前者做了很多其他事情(分别是 515 行和 173 行),例如 检查变基是否正在进行并在中创建一些临时文件$GIT_DIR/objects。例子:

stat(".git/MERGE_HEAD", 0x7ffefb5d0760) = -1 ENOENT (No such file or directory)
stat(".git/rebase-apply", 0x7ffefb5d0620) = -1 ENOENT (No such file or directory)
stat(".git/rebase-merge", 0x7ffefb5d0620) = -1 ENOENT (No such file or directory)
stat(".git/CHERRY_PICK_HEAD", 0x7ffefb5d0760) = -1 ENOENT (No such file or directory)
stat(".git/BISECT_LOG", 0x7ffefb5d0620) = -1 ENOENT (No such file or directory)
stat(".git/REVERT_HEAD", {st_mode=S_IFREG|0644, st_size=41, ...}) = 0
lstat(".git/REVERT_HEAD", {st_mode=S_IFREG|0644, st_size=41, ...}) = 0
openat(AT_FDCWD, ".git/REVERT_HEAD", O_RDONLY) = 4

但结果似乎是相同的:他们用以下命令打开编辑器 git 生成的消息(例如:“这将恢复提交 [...]”)并在之后提交 退出。我曾多次使用替代形式,但从未有过 至少有问题(顺便说一句,我可能在相同的情况下发现了它 设想)。

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

在“git revert --continue”期间绕过预提交挂钩 的相关文章

  • 如何防止自动工具自动重新生成配置脚本?

    有时由于SCM没有严格记住文件的时间戳 生成的Makefile会认为需要重新运行 autoreconf i 或相当于从Makefile am重新生成Makefile in 从configure ac重新生成配置等 我该如何防止这种情况 我想
  • 如何在 git merge 提交中列出冲突的文件(父级都有更改的文件)?

    qgit 有一个很好的选择 可以在合并提交中查看 有趣 的文件 其中有趣的文件被定义为在两个父文件中都有更改的文件 查看此类文件的相应命令行是什么 git show name status SHA1 of merge 将向您显示提交消息和在
  • 在 ConEMU 中显示 git 分支

    有没有办法在 ConEmu 中以视觉方式 背景或类似 在 git 中显示分支 Git 分支可以在普通的 cmd 或 Far Manager 提示符中可见 所有魔法都是通过特殊的 ANSI 序列完成的 必须选中 Inject ConEmuHk
  • 如何安装gitlab-rails?

    我正在尝试为 Gitlab 项目创建一个组访问令牌 它需要访问 gitlab rails 控制台才能执行此操作 在 gitlab 教程上 这是安装它的链接 https docs gitlab com ee administration op
  • git 压缩并保留上次提交的时间戳

    考虑我有提交 A B C 如果我使用git rebase i将所有三个提交压缩为一个 我们可以 pick A squash B squash C 我看到结果提交A有其原始时间戳 如何让它继承提交的时间戳C 最后一个 我能想到的是git co
  • gitk中正则表达式的格式是什么?

    我正在尝试使用 gitk 中的 find 添加 删除字符串 正则表达式选项 我尝试过的语法不起作用 并且我找不到描述它接受的正则表达式语法的文档 我正在尝试匹配两者Modem Wakup and Modem UnWakeup 两者都不Mod
  • 在VSO或VS2015中创建Git分支标签

    有没有办法在 vso 中创建分支标签 另外 我尝试在 VS2015 中创建标签并将更改提交推送到 vso 但我在 vso 中没有看到该标签 只是想知道 VS2015 VSO 标记功能是否到位 您在 VS2015 中创建的标签位于本地存储库中
  • 为什么 git 挂起 - 在命令后必须按 Enter 两次?

    编辑 摘要 在 Git 中输入的每个命令都会生成一个悬挂光标 如果在按 Enter 之前输入任何内容 则该光标会显示 错误输入 没有命令产生任何结果 我尝试全新安装但没有结果 I am 完全地Git 新手 不知道我在做什么 我用的是Mac
  • git rebase -i --retain-empty-commits

    默认情况下 当您使用git rebase i它注释掉了空提交 我必须取消注释它们 它们对我有帮助 rebase 命令是否有一个选项可以防止这种我不想保留它们的不必要的假设 好吧 这比预期的要容易 git rebase i keep empt
  • Git 处理大文件

    情况 我有两台服务器 生产服务器和开发服务器 在生产服务器上 有两个应用程序和多个 6 数据库 MySQL 我需要将它们分发给开发人员进行测试 所有源代码都存储在GitLab http gitlab org在开发服务器上 开发人员仅使用此服
  • Git 命令在 Mac 终端中不起作用:“dyld:未找到符号:___strlcpy_chk”错误

    我正在使用命令 git clone ssh 并在终端上收到以下错误 dyld lazy symbol binding failed Symbol not found strlcpy chk Referenced from usr local
  • 如何在不丢失 Git 中上次提交的情况下返回到上一个提交?

    这就是我想做的 我想回到之前的 2 个提交 也许将该提交中更改的文件作为新的提交返回 但我不想失去最后一次提交 我上次提交的代码中有一些错误 但我想暂时保留该错误 我读过一些文档 但没有一个文档清楚地说明了当你重置头部时会发生什么 例如 您
  • 我如何在 Bitbucket 上制作/关注发布公告?

    在 GitHub 上 您可以使用 git 标签来发布发布公告 https developer github com v3 repos releases create a release然后将出现在发布页面上 例子 https github
  • Git-Flow 撤消已完成的功能分支

    如果您想 撤消 功能分支 您有哪些选择 假设您添加了一项新功能supercool feature您完成后 合并到开发中并删除功能分支 然后进入发布版本 但你的用户真的不喜欢这个supercool feature 我如何撤消 倒回 反转这个已
  • 如何使用 master 上的上游更改更新主题分支?

    我开始在主题分支上进行一些工作 lt topic lt master 我推送主题分支 git push origin topic 其他人将更改推送到 master lt origin topic lt origin master 如何更新我
  • 如何将远程master合并到本地分支

    我有一个项目的本地分支 configUpdate 它是我从其他人的项目中分叉出来的 并且我已经对其进行了大量更改 并且希望将他们所做的更改合并到我的本地分支中 我试过了 git pull rebase origin configUpdate
  • 从 Bitbucket 构建 Bamboo,部署到 Azure 云

    我正在寻找一种使用与 Visual Studio Online 类似的所有 Atlassian 产品来构建和部署 NET Web 应用程序的解决方案 基本工作流程是 合并到 Master Bitbucket 上的 Git 使用 Bamboo
  • “git status”显示更改的文件,但“git diff”不显示

    我看过所有类似的问题 然而 我仔细检查过 肯定发生了一些奇怪的事情 在一台服务器 带有 Git 1 8 1 的 Solaris 上 我克隆了 Git 存储库 然后将 git 文件夹复制到我现有的实时文件中 这很完美 我可以运行 git st
  • 克隆 git 存储库的问题

    我正在尝试克隆 git 存储库 但出现错误 Unable to negotiate with
  • 如何使用 difftool 比较 .odt 文件? kdiff3 diff 输出不可读的字符

    在 git 中我试图使用 gitattributes使用 difftool 比较 odt 文件 libreoffice writer 文件 遵循本指南 http www verimag imag fr moy opendocument ht

随机推荐

  • WCF [DataContract] set/get 未执行

    我对 WCF 有点陌生 我认为我不完全理解 DataContracts 的含义 我有这个 RequestArray 类 DataContract public class RequestArray private int m TotalRe
  • 如何知道应该使用哪个 cuDNN 版本?

    我计划在 Linux 上使用 cuDNN 如何知道我需要哪个 cuDNN 版本 我应该始终使用最新的吗 例如 选择正确的 CUDA 版本依赖于取决于 https stackoverflow com a 30820690 395857Nvid
  • React-native android 样式textInput

    有没有办法在react native android中设置textInput的样式 就像更改选择时的下划线颜色和光标颜色一样 从 React Native 0 21 版本开始 仍然无法通过 view props 来设置光标颜色的样式 我已通
  • 在Vue js中从父组件定义子组件的布局

    我是 Vue 新手并正在使用Vue 2 2 1 我想知道是否可以创建一个可重用的组件 其布局可以由其父组件定义 例如 考虑以下伪代码 Parent template
  • 如何处理node.js中的for循环?

    我在 node js 中有以下代码 var months jan feb march april may june july august sep oct nov dec for var i 0 j months length i
  • 捕获播放视频的屏幕截图并邮寄该屏幕截图

    我正在播放视频 我需要捕获视频屏幕截图 在我需要邮寄后分享它 请向我提供任何链接的示例 谢谢 昌杜 如果您不想以编程方式执行此操作 只需使用 eclipse 并转到 DDMS 然后使用屏幕捕获 这可能对您有用 http www howtof
  • PHP/Apache 内的 Inkscape 不会将字体渲染为 PNG

    今天发现的一个问题和这个类似未解答的问题 https stackoverflow com questions 7827445 processstartinfo with inkscape on iis is not using any fo
  • 如何列出 scikit-learn 中的所有分类/回归/聚类算法?

    类比于如何列出所有支持 Predict proba 的 scikit learn 分类器 https stackoverflow com questions 30056331 how to list all scikit learn cla
  • 除了主 ELF 可执行文件之外,如何从命令行预加载 gem5 中给定原始字节的内存?

    当模拟开始时 在执行任何指令之前 我需要立即以给定的方式设置内存 我知道这本质上是 ELF 加载程序加载主要可执行文件的操作 但试图通过fs py kernel多次似乎没有效果 我可以尝试使用链接器脚本将该数据破解到我的邮件 ELF 可执行
  • 如何突出显示网格控件的边框线

    我编写了一些代码 以便将 100 x 100 个单元格添加到网格中 问题是我想突出显示分割网格的行 列的线 我应该使用什么属性 或者我应该如何做 下面是创建网格单元的代码 public partial class MainWindow Wi
  • 接口只是“语法糖”吗?

    我主要使用 PHP 和 Python 我一直在阅读有关面向对象编程中的接口的内容 但看不出使用它的优势 多个对象可以实现相同的接口 但是多重继承不提供这一点吗 如果我可以检查 Python 中继承自多个类的对象中是否存在方法 为什么我需要创
  • VCS 和 SCM 有什么区别?

    我正在实践中对版本控制进行一些研究 在书籍和论文中似乎对同一事物有两个名称 软件配置管理 SCM 和版本控制系统 VCS 前者似乎很受软件工程师 Java 程序员的欢迎 而后者则受到系统管理员的欢迎 但在外行人看来 两者似乎意味着同一件事
  • 三个js中的场景旋转问题

    我尝试动态地旋转有孩子的场景 一切工作正常 但是当我平移相机并旋转场景时 轨道控制的枢轴点会损坏并且平移无法正常工作 主要思想是创造围绕物体旋转的 hdr 幻觉 抱歉我的英语不好 这真的很难描述 希望你能理解我的想法 这是一个小代码笔exa
  • macOS High Sierra 与 CAShapeLayers、NSImageView、NSTableView 冲突

    我已经更新到 macOS High Sierra 现在我的项目出现了意想不到的问题 这些问题以前在 macOS Sierra 中没有见过 我有自定义 NSImageView 并在其中拖放图像后NSImageView我可以使用在图像顶部绘制矩
  • 覆盖 Woocommerce 子主题不起作用

    从我的子主题覆盖 Woocommerce 文件根本不起作用 我确信一切都是100 正确的 真是令人沮丧 我正在遵循此页面视频中的每一步 https docs woocommerce com document template struct
  • C++ unique_ptr 与友元类私有析构函数

    我有这样的安排 class LexedFile friend class Lex private LexedFile class Lex private std map
  • 如何使用 GDB 从多个文件中查找分段错误

    我在面试中被问到如何使用 GDB 调试 C 程序中的分段错误 我告诉他们我们可以用以下命令编译我们的程序 g选项 这样它将调试信息添加到二进制文件中 并且可以读取核心转储文件 但面试官告诉我 如果他有 3 到 4 个文件编译在一起 但其中一
  • 我可以使用 443 以外的其他端口进行 HTTPS/SSL 通信吗?

    443 端口通常用于 HTTPS SSL 但这是我们可以选择 HTTPS SSL 通信的唯一选项吗 如果没有 为什么 端口号并不 神奇 您可以使用 1 65535 之间的任何您喜欢的端口 只有2个条件 服务器和客户端都必须 同意 使用相同的
  • 如何使用 JavaScript 查找字符串中的整数之和

    我使用正则表达式创建了一个函数 然后通过将前一个总计添加到数组中的下一个索引来迭代数组 我的代码不起作用 我的逻辑有问题吗 忽略语法 function sumofArr arr here i create a function that h
  • 在“git revert --continue”期间绕过预提交挂钩

    我当时正在做一个git revert 之前的恢复 这导致了一些合并冲突 解决冲突后 我的预提交挂钩引发了一些代码嗅探器问题 由于这些代码嗅探器通知已在其他地方修复 我想在此时使用绕过预提交挂钩git revert continue no v