【发布时间】:2019-01-31 14:47:03
【问题描述】:
是否有一个简单的 git 命令来列出差异包含给定字符串的文件,还是我必须迭代?
我需要将重构(方法名称更改)与其他更改分开提交,因此我需要识别其差异包含新方法名称的文件。
【问题讨论】:
是否有一个简单的 git 命令来列出差异包含给定字符串的文件,还是我必须迭代?
我需要将重构(方法名称更改)与其他更改分开提交,因此我需要识别其差异包含新方法名称的文件。
【问题讨论】:
您可以使用diff 命令的-S(字符串)或-G(正则表达式)参数来过滤特定字符串。
git diff --name-only -S"your_method_name"
并且只有在更改中出现此特定字符串的文件才会显示在列表中。
看看这里the doc:
-S<string>寻找改变文件中指定字符串出现次数(即添加/删除)的差异。供脚本编写者使用。
当您正在寻找一个确切的代码块(如结构)并想知道该代码块自诞生以来的历史时,它很有用:迭代地使用该功能来提供有趣的代码块preimage 回到 -S 中,并继续执行,直到获得第一个版本的块。
【讨论】:
-S 和 -G 之间的区别不仅限于字符串与正则表达式。请参阅this example 了解这两个选项之间的区别。