Git diff -S只显示匹配的行

时间:2017-09-08 08:12:50

标签: git git-diff

我正在使用this git hook来阻止包含非ascii字符的提交。

当我找到一个非ascii字符时,我想只打印带有字符的行(如果可能的话,还要打印文件名和行号)

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

--unified选项将显示文件中的所有更改,但我只想显示找到的行-S。

1 个答案:

答案 0 :(得分: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 -n "$char" /dev/null替换为grep -Hn "$char"