在 git 日期后的两个分支之间查找修改后的 java 文件

Find the modified java files between two branches after a date in git

我试图在 4 月 1 日之后在两个分支之间找到所有修改过的 java 文件。我可以使用以下命令找到所有修改过的 java 文件。无论如何也可以应用日期过滤器吗?谢谢

git --no-pager diff --name-only feature_branch..master | grep .java

解决方案

谢谢@romainvaleri。我使用以下命令来识别修改后的 Java 个文件。

git log --since="1st April" --name-only --pretty=format:"" feature_barnch..master -- *.java | sort -u | sed 's/.*\///' 

我宁愿在这里使用 git log 因为它方便 options :

git log --since="1st April" --name-only --pretty=format:"" feature_branch..master -- *.java

其中:

--since=<date> 允许您设置日期过滤器¹
--name-only 仅显示更改的文件名而不是更改
--pretty=format:"" 抑制所有输出(即提交信息)但 diff
feature_branch..master 设置要覆盖的提交范围
最后
-- *.java 按文件名过滤

然后,如果在 bash 上下文中,您可能希望使用 | sort| uniq

修复列表
git log --since="1st April" --name-only --pretty=format:"" feature_branch..master -- *.java | sort | uniq

¹(这可能是相对的,比方说 --since="one month ago"