如何使用 git gem 向提交添加 --no-verify 选项?

How can I add --no-verify option to a commit using git gem?

我正在使用 rubygems.org 中的 'git' gem 与 git 存储库进行交互。我们公司最近添加了 git 提交挂钩,这些挂钩阻碍了提交。我想至少暂时跳过 git 挂钩以允许自动化继续工作。在命令行上我可以使用 git commit --no-verify 但找不到使用 git gem 的方法。有没有办法跳过 git gem 的提交检查?

不幸的是,我们可以从它的source

中看出
def commit(message, opts = {})
  arr_opts = []
  arr_opts << "--message=#{message}" if message
  arr_opts << '--amend' << '--no-edit' if opts[:amend]
  arr_opts << '--all' if opts[:add_all] || opts[:all] 
  arr_opts << '--allow-empty' if opts[:allow_empty]
  arr_opts << "--author=#{opts[:author]}" if opts[:author]

  command('commit', arr_opts)
end

gem 只允许 commit 的几个选项。

不过你可能 monkey-patch 它,因为源代码看起来很容易阅读。