列出更改 (diff) 包含给定字符串的文件?

Szc*_*ski 4 git git-diff

是否有一个简单的 git 命令来列出差异包含给定字符串的文件,或者我是否必须迭代?

我需要与其他更改分开提交重构(方法名称更改),因此我需要确定差异包含新方法名称的文件。

Rom*_*eri 5

您可以使用命令的-S(string) 或-G(regexp) 参数diff来过滤特定字符串。

git diff --name-only -S"your_method_name"
Run Code Online (Sandbox Code Playgroud)

并且只有在更改中出现此特定字符串的文件才会显示在列表中。

看看这里的文档:

-S<string>

查找更改文件中指定字符串(即添加/删除)出现次数的差异。供脚本编写者使用。

当您正在寻找确切的代码块(如结构),并想知道该块自首次出现以来的历史时,它很有用:迭代地使用该功能将原像中有趣的块送回-S,并继续前进,直到获得该块的第一个版本。