Git diff -S 只显示匹配的行

3
我正在使用这个git钩子来防止提交包含非ASCII字符的内容。
当我发现一个非ASCII字符时,我想只打印带有该字符的行(如果可能的话,还要打印文件名和行号)。
git --no-pager diff HEAD -S$char -U0

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

1个回答

0
我想只打印带有字符的行(如果可能的话,还要包括文件名和行号)。
这不完全是一个“diff”格式,但你可以通过添加“xargs”和“grep”来轻松地得到你想要的结果:
%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"


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接