Tag: githooks

在Git中编写一个预推钩来grep所有文件的正则表达式想要拒绝push如果找不到正则表达式

我有以下预推钩。 理想情况下,如果任何文件的内容与顶部定义的正则表达式不匹配,我希望它能够遍历所有被推送到我的存储库的文件并拒绝推送。 尝试循环遍历文件时,我收到以下错误:“undefined method` each’for”“:String(NoMethodError)”。 ‘.each’不起作用,因为git命令返回包含已更改文件的字符串。 #!/usr/bin/env ruby regex = “\\s*GO\\s*$” localRef, remoteRef = ARGV #puts localRef #puts remoteRef input = $stdin.readlines[0] localSha = input.split(” “)[1] remoteSha = input.split(” “)[3] #puts localSha #puts remoteSha range = “#{remoteSha}..#{localSha}” #folderPath = `git rev-parse –show-toplevel` #puts folderPath `git diff –name-only –diff-filter=ACMR #{range}`.each do |file| #puts file content = […]

如何使用ruby git pre-commit hook打印所有暂存的文件名?

我刚刚开始使用Ruby使用git hooks(因为我更喜欢使用ruby)。 谁能告诉我如何打印所有暂存的文件名? 任何人都可以告诉我或给我一个很好的资源,我可以理解git将如何搜索分阶段文件并搜索特定文本?

Git pre-commit hook

我是git hooks的新手。 我无法理解下面的预提交钩子。 任何人都可以告诉我这是如何工作的。我怀疑是如何在提交的文件中发生grep,因为我们没有把这些文件带到任何地方。 对不起,如果我提出错误的问题,但请帮助我理解git hooks .. #!/usr/bin/env ruby if `grep -rls “require ‘ruby-debug’; raise” *` != “” puts “You twit, you’ve left a debugger in!” exit(1) end