【问题标题】:List files whose changes (diff) contain a given string? [duplicate]列出其更改(差异)包含给定字符串的文件? [复制]
【发布时间】:2019-01-31 14:47:03
【问题描述】:

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

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

【问题讨论】:

    标签: git git-diff


    【解决方案1】:

    您可以使用diff 命令的-S(字符串)或-G(正则表达式)参数来过滤特定字符串。

    git diff --name-only -S"your_method_name"
    

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

    看看这里the doc

    -S<string>

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

    当您正在寻找一个确切的代码块(如结构)并想知道该代码块自诞生以来的历史时,它很有用:迭代地使用该功能来提供有趣的代码块preimage 回到 -S 中,并继续执行,直到获得第一个版本的块。

    【讨论】:

    • -S-G 之间的区别不仅限于字符串与正则表达式。请参阅this example 了解这两个选项之间的区别。
    猜你喜欢
    • 2014-11-06
    • 2020-07-04
    • 1970-01-01
    • 2023-03-20
    • 2012-07-19
    • 1970-01-01
    • 2023-03-20
    • 2016-01-28
    • 2011-06-26
    相关资源
    最近更新 更多