我添加了一個 pre-commit 鉤子來對任何正在提交提交的檔案運行 Rubocop。但是,當您給它一個 .png 或 .svg 檔案時,Rubocop 會出錯。我已經將這些檔案擴展名添加到exclude塊中,.rubocop.yml但是因為我實際上是按名稱顯式提供檔案,這似乎不起作用。
這是我的預提交腳本:
#!/usr/bin/env bash
set -e
git diff --staged --diff-filter=d --name-only | xargs bundle exec rubocop
我認為該方法是從該 git 命令中獲取檔案串列并遍歷它們,過濾掉任何 .png 或 .svg,但老實說,我不知道該怎么做。關于按擴展名過濾檔案的任何建議?
uj5u.com熱心網友回復:
一種想法可能是使用grep.
git diff --staged --diff-filter=d --name-only \
| grep --invert-match '\.\(png\|svg\)$' \
| xargs bundle exec rubocop
uj5u.com熱心網友回復:
有一個標志--only-recognized-file-types,我認為它可以滿足您的需求。
uj5u.com熱心網友回復:
git diff --staged --diff-filter=d --name-only -- ':!*.png' ':!*.svg'
或者為了更容易控制,您可以檢查屬性并在.gitattributes.
說git help glossary和追查pathspec,可能有一種更快的途徑來找到它的檔案,但這是我所知道的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/313225.html
