1
我是git鉤子的新手。我今天開始寫一個預先提交的鉤子。下面是我的鉤子檢查加薪,警報,文件等Git預犯鉤問題
#!/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:〜/學習/ git_learning $ git的承諾-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
誰能告訴我什麼是這裏的問題。
難道不preprending的FOLDER_PATH工作嗎?(如在https://github.com/i-wind/gpc/blob/master/pre-commit.rb或https://www.omniref.com/ruby/gems/pre-commit/0.16.1/files/lib /pre-commit/utils/staged_files.rb) – VonC
working:|。非常感謝。我想我可以參考那個pre-commit gem的實現,這樣我就可以改進以避免這樣的問題:) –