我在我的项目中使用overcommit gem(https://github.com/brigade/overcommit),当我使用Github Desktop for osx时出现这些错误:
此存储库包含由Overcommit安装的挂钩,但是 未安装
overcommit
gem。使用gem install overcommit
安装它。 (1)
安装了宝石,它在终端工作。我想这是因为我使用rvm并且Github Desktop不知道rvm。有谁知道如何解决这个问题?
答案 0 :(得分:5)
好吧终于搞定了! 结合@michelegera的答案和@rewritten的评论
第1步:
sudo su -
gem install bundler
gem install overcommit
gem install rubocop
第2步:将command: ['bundle', 'exec', 'rubocop']
添加到.overcommit.yml
感谢您的帮助!
答案 1 :(得分:0)
很可能是this line发生错误的地方。正如您所看到的,主要问题是它无法require 'overcommit'
。我不太了解GitHub桌面客户端(可能有一种方法可以在其中配置它),但你可以做的一件事是添加rvm存储你的宝石的绝对路径到"要求路径"在钩子文件中。这看起来像是:
$: << "/home/user/.rvm/path/to/gems/dir"
这样做的缺点是你将在钩子文件中拥有绝对路径,并且它很可能不会为其他人工作。您可能还需要考虑为执行脚本的ruby解释器全局安装gem(请参阅钩子文件中的Shebang行)。
答案 2 :(得分:0)
您是对的,Github Desktop(或任何其他GUI)未在您的终端环境中运行,因此它对您的特定RVM安装一无所知。
一个简单的解决方案是将钩子所需的overcommit
和任何其他宝石安装到您的系统Ruby中:
sudo su -
gem install bundler
gem install overcommit
gem install rubocop
...
如果您通过Homebrew或其他方式安装Git,则可能需要更改GUI使用的 Git二进制文件。
例如,在Tower中,我选择了Homebrew的版本而不是系统版本。