Git > 过滤差异,仅显示某些更改 classes/files
Git > diffs filtered, show only certain changed classes/files
我有一个软件的 2 个版本(即标签 4.1 和标签 4.2)。
现在我想筛选出java类4.1版本中有修复的bug。
如果我输入 git diff r4.1 r4.2 --name-only > patch.csv
,我会得到一个列表,其中包含从版本 4.1 到 4.2 的所有更改 类。但此列表还包含并非基于错误的更改。
是否有可能我可以过滤结果以便只显示 类,因为包含单词 "bug" 的提交而更改。例如 "git log --grep=bug"。我可以将它与 "diff" 命令结合使用吗?
如果这不可能,那么当我查看 4.2 版并获得因修复错误而导致的 类 更改列表时,对我来说也很好。
像这样git r4.2 log --grep=bug --name-only
?
git log r4.1..r4.2 --name-only --grep=bug --pretty=oneline
应该给你一个提交消息的列表 headers 并且其中更改的文件没有提交消息本身。然后您可以重定向输出以获得易于阅读的 类:
列表
$ git log r4.1..r4.2 --name-only --grep=bug --pretty=oneline | grep "\.java$" | sort | uniq
我有一个软件的 2 个版本(即标签 4.1 和标签 4.2)。
现在我想筛选出java类4.1版本中有修复的bug。
如果我输入 git diff r4.1 r4.2 --name-only > patch.csv
,我会得到一个列表,其中包含从版本 4.1 到 4.2 的所有更改 类。但此列表还包含并非基于错误的更改。
是否有可能我可以过滤结果以便只显示 类,因为包含单词 "bug" 的提交而更改。例如 "git log --grep=bug"。我可以将它与 "diff" 命令结合使用吗?
如果这不可能,那么当我查看 4.2 版并获得因修复错误而导致的 类 更改列表时,对我来说也很好。
像这样git r4.2 log --grep=bug --name-only
?
git log r4.1..r4.2 --name-only --grep=bug --pretty=oneline
应该给你一个提交消息的列表 headers 并且其中更改的文件没有提交消息本身。然后您可以重定向输出以获得易于阅读的 类:
$ git log r4.1..r4.2 --name-only --grep=bug --pretty=oneline | grep "\.java$" | sort | uniq