在 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"
)
我试图在 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"
)