Ruby on rails 铁轨:;“过度限制—运行”;正在传递,但预提交挂钩失败

Ruby on rails 铁轨:;“过度限制—运行”;正在传递,但预提交挂钩失败,ruby-on-rails,git-commit,pre-commit-hook,rubocop,ruby-overcommit,Ruby On Rails,Git Commit,Pre Commit Hook,Rubocop,Ruby Overcommit,我在overmit中遇到了一个预提交挂钩问题,它被配置为运行rubocp和rails\u最佳实践 简而言之,下面列出的三个命令都通过了,但是overmit不允许我提交到git。如果您有任何关于为什么/如何规避此问题的建议,我们将不胜感激 #这些都通过了 rubocop-a rails\u最佳实践。 超负荷运行 #Git提交失败 $Overmit—运行 运行预提交钩子 使用RailsBestPractices进行分析………..[RailsBestPractices]确定 使用RuboCop进行分

我在
overmit
中遇到了一个预提交挂钩问题,它被配置为运行
rubocp
rails\u最佳实践

简而言之,下面列出的三个命令都通过了,但是
overmit
不允许我提交到git。如果您有任何关于为什么/如何规避此问题的建议,我们将不胜感激

#这些都通过了
rubocop-a
rails\u最佳实践。
超负荷运行
#Git提交失败
$Overmit—运行
运行预提交钩子
使用RailsBestPractices进行分析………..[RailsBestPractices]确定
使用RuboCop进行分析………..[RuboCop]正常
✓ 所有预提交钩子都已通过
$git commit-m“使用Attr API确保小写”
运行预提交钩子
使用RailsBestPractices进行分析………..[RailsBestPractices]失败
修改行上的错误:
/Users/USER_NAME/projects/APP_NAME/APP/models/lower_case_string.rb:2-删除未使用的方法(小写字符串)
使用RuboCop进行分析………..[RuboCop]失败
修改行上的错误:
/Users/USER\u NAME/projects/APP\u NAME/APP/models/lower\u case\u string.rb:3:3:C:Layout/IndentationWidth:使用2(而不是0)个空格进行缩进。
✗ 一个或多个预提交挂钩失败

现在,我了解到,
overmit--run
不会像您实际尝试提交时那样触发钩子(整个项目与只提交更改相比)。然而,我不确定这将如何影响我的案例,特别是因为
rubocop
rails\u最佳实践
都是单独通过的。顺便说一下,这里出现的错误都是假警报
rails\u best\u practices
一开始不应该检查未使用的方法,因为在
config/rails\u best\u practices.yml

中已经关闭了该检查,在使用这些gems几周后,我想我已经找到了答案。我会给遇到类似问题的人留下一些建议

1。在执行
overmit-使用
git add运行


如上所述,
--run
命令不会检查未跟踪的文件

2。将
gemfile
选项添加到
.overmit.yml

我遇到的一个问题是,
overmit
无法读取我的
config/rails\u best\u practices.yml
(它本来不应该检查
未使用的方法,因为该检查在配置文件中被关闭)

似乎当我试图
git提交
时,
overmit
使用的是安装在我系统中的gems(而不是
Gemfile
),因此不知何故无法读取我的配置文件。因此,我按照文档中的建议添加了
gemfile
选项,并确保
overmit
使用
gemfile
/
绑定器
版本。从那以后,我再也没有犯过主题错误。正如文件所说:

如果您使用Bundler来管理Ruby gem依赖项,那么您可能希望使用gemfile选项来控制钩子运行期间哪些gem版本可用

我的
.overmit.yml
文件供参考:

gemfile:gemfile
预承诺:
RuboCop:
已启用:true
on_警告:失败
铁路测试实践:
已启用:true
on_警告:失败
命令:['bundle','exec','rails\u best\u practices','-c','config/rails\u best\u practices.yml']

顺便说一句——我没有尝试过这个,但是显然你也可以创建一个单独的
Gemfile
,如果你觉得加载原始
Gemfile
会减慢钩子的执行()。

使用这些gems几周后,我想我已经找到了答案。我会给遇到类似问题的人留下一些建议

1。在执行
overmit-使用
git add运行


如上所述,
--run
命令不会检查未跟踪的文件

2。将
gemfile
选项添加到
.overmit.yml

我遇到的一个问题是,
overmit
无法读取我的
config/rails\u best\u practices.yml
(它本来不应该检查
未使用的方法,因为该检查在配置文件中被关闭)

似乎当我试图
git提交
时,
overmit
使用的是安装在我系统中的gems(而不是
Gemfile
),因此不知何故无法读取我的配置文件。因此,我按照文档中的建议添加了
gemfile
选项,并确保
overmit
使用
gemfile
/
绑定器
版本。从那以后,我再也没有犯过主题错误。正如文件所说:

如果您使用Bundler来管理Ruby gem依赖项,那么您可能希望使用gemfile选项来控制钩子运行期间哪些gem版本可用

我的
.overmit.yml
文件供参考:

gemfile:gemfile
预承诺:
RuboCop:
已启用:true
on_警告:失败
铁路测试实践:
已启用:true
on_警告:失败
命令:['bundle','exec','rails\u best\u practices','-c','config/rails\u best\u practices.yml']
顺便说一句,我还没有尝试过这个方法,但是如果您觉得加载原始的
Gemfile
会减慢钩子的执行速度(),那么显然您也可以创建一个单独的
Gemfile
,只是为了
overmit
的目的