【问题标题】:Git pre-commit hook issueGit预提交钩子问题
【发布时间】:2015-01-13 10:09:47
【问题描述】:

我是 git hooks 的新手。我今天开始写一个预提交钩子。下面是我的钩子,它检查文件中的提升、警报、尾随空格等。

#!/usr/bin/env ruby

regex = Regexp.union(/raise/, /puts/, /alert/, /console.log/, /[\s\t]+$/)

folder_path =`git rev-parse --show-toplevel`

`git diff --cached --name-only --diff-filter=ACM`.each do |file|
  file_text = File.read(File.join(folder_path.chomp, '/', file))
  if file_text.match(regex)
    puts "#{file} contains invalid word #{$&}. Please remove it"
    exit 1
  end
end 

当我提交一个示例文件时,我没有收到这样的文件或目录错误。 kranthi@kranthi-Aspire-4755:~/learning/git_learning$ git commit -m "tet"

.git/hooks/pre-commit:9:in `read': No such file or directory - /home/kranthi/learning/git_learning/another_folder/test2.txt (Errno::ENOENT)
    from .git/hooks/pre-commit:9
    from .git/hooks/pre-commit:17:in `map'
    from .git/hooks/pre-commit:8:in `each'
    from .git/hooks/pre-commit:8:in `map'
    from .git/hooks/pre-commit:8

谁能告诉我这里有什么问题。

【问题讨论】:

标签: ruby githooks


【解决方案1】:

根据其他 git 钩子(如“pre-commit/utils/staged_files.rb”或“i-wind/gpc/pre-commit.rb”,您不需要在 repo 的根文件夹前面添加。

file_text = File.read(File.join(file))

【讨论】:

    猜你喜欢
    • 2013-12-15
    • 2019-07-12
    • 2018-05-21
    • 1970-01-01
    • 1970-01-01
    • 2011-10-16
    • 2021-03-01
    • 1970-01-01
    相关资源
    最近更新 更多