Git> diffs filtered,仅显示某些已更改的类/文件

时间:2015-06-05 11:40:23

标签: git filter grep diff git-log

我有两个版本的软件(即标签4.1和标签4.2)。

现在我想过滤掉版本4.1的java类中有修复的错误。

如果我输入git diff r4.1 r4.2 --name-only > patch.csv,我会从版本4.1到4.2获得所有已更改类的列表。但是,此列表还包含不基于错误的更改。

我是否有可能过滤结果,以便只显示由于包含单词" bug"的提交而更改的类。例如" git log --grep = bug"。我可以将它与" diff"命令?

如果这不可能,那么当我只看4.2版本并获得修复bug导致的更改类列表时,对我来说也没关系。

类似这样的事件git r4.2 log --grep=bug --name-only

1 个答案:

答案 0 :(得分:3)

git log r4.1..r4.2 --name-only --grep=bug --pretty=oneline应该在没有提交消息的情况下为您提供提交消息头列表和更改的文件列表。然后,您可以重定向输出以获得易于阅读的类列表:

$ git log r4.1..r4.2 --name-only --grep=bug --pretty=oneline | grep "\.java$" | sort | uniq