git - 如何在特定日期后获取所有提交 ID 并仅显示已更改的文件?

标签 git git-log

我需要获取特定日期后更改的所有文件的名称。好像如果我有 commit_id 我可以使用
git show --name-only <commit_id>
这给了我:

commit sfffwefwew3134343(origin/<branch_name>)
Author: ...............
Date: ..................
      <Commit Msg>
abc/xyz/abc.sql

所以基本上有两个问题:
有没有办法只获取像 abc/xyz/abc.sql 这样的文件? ?
如果是这样,我如何在特定日期之后获取所有提交 ID,以便我可以遍历所有 ID 并获取已更改的文件?

有没有更好的方法来查找在特定日期之后更改的文件?

最佳答案

首先,尝试

git log --pretty=format:"" --name-only --since=<date>

...这将产生这样的输出,每个提交都会产生自己的文件列表,用空行分隔

file1.txt
file2.txt

file2.txt
dir/file3.txt
file9.txt

file1.txt

...您可以(如果需要?)通过 | 发送命令结果来重新组合sort -u 得到

dir/file3.txt
file1.txt
file2.txt
file9.txt

笔记
--pretty=format:"" 在这里关闭每个提交的信息(文件名除外)
--since 的文档是 here .

关于git - 如何在特定日期后获取所有提交 ID 并仅显示已更改的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68930522/

相关文章:

GIT-IntelliJ : Failed to start Git process

git - 未推送提交的别名,无论我在哪个分支?

git - 如何只获取一个分支的提交历史?

git - 如何在git中切换到不同的远程分支

Git for windows 使用 gitk-all 启动 gitk 上下文菜单

git - 在 Visual Studio Online 上托管 bower 组件

git - 如何使用 git log --since 产生可靠的结果

git - 如何在 git 中以漂亮的格式查看一天的提交?

git - 如何重现 git log --oneline --decorate 的格式?

git - 为所有命令制作 git 输出完整(非缩写)哈希?