git责备使用grep命令过滤的所有文件中的特定行

sen*_*rio 5 git blame vim-fugitive git-blame git-grep

我知道如何在文件中运行gblame.

我知道如何在目录中的所有文件中grep内容.

我希望看到围绕那个包含内容的特定行的gblame.例:

$ blame -R "content" ./
Run Code Online (Sandbox Code Playgroud)

我看到了一个文件列表.我想要了解所有主题,并了解谁触及了这些代码行.

Cas*_* Lo 12

你可以用Perl做到这一点:

git grep -n 'content' | perl -F':' -anpe '$_=`git blame -L$F[1],+1 $F[0]`'
Run Code Online (Sandbox Code Playgroud)

如果你想创建一个自定义命令,你可以在别名部分的gitconfig中添加这样的东西:

gb = "!f() { git grep -n $1 | perl -F':' -anpe '$_=`git blame -L$F[1],+1 $F[0]`'; }; f"
Run Code Online (Sandbox Code Playgroud)

  • @Arun您可以使用 -f / --show-name 选项来责备,它将显示文件名,因此命令将是:`gitblame -fL$F[1],+1 $F[0]` (2认同)