2017-09-08 261 views
1

我正在使用this git鉤子來阻止包含非ascii字符的提交。Git diff -S僅顯示匹配的行

當我發現一個非ASCII字符,我想以字符只打印行(如果可能的文件名和行號太)

git --no-pager diff HEAD -S$char -U0 

的--unified選項將顯示所有的變化在文件中,但我只想顯示-S找到的行。

回答

0

我只想打印與字符線(如果可能的文件名和行號太)

這不正是一個diff格式,但你可以很容易地得到你想要的東西加入xargsgrep進來:

%git diff --name-only -S"$char"|xargs grep -n "$char" /dev/null 
module/main/src/main/java/Scratchpad.java:33: public void Reßet() { 

隨着GNU的grep,您可以用grep -Hn "$char"

更換 grep -n "$char" /dev/null 10