如何使用 Windows 中的 Git 递归列出提交的文件,提交日期按降序排列?

How to use Git in Windows to recursively list the files committed, with the commit dates in descending order?

所以我使用 Visual Studio 2022 社区和 Git 作为版本控制。 Git 存储库本地存储在我的计算机上。我还从 Git 官方网站下载并安装了 Git for Windows:https://git-scm.com/.

我想用 Git 做的是列出已经提交到我计算机上本地 Git 存储库的文件,按提交日期降序排列,递归地(递归的意思它还将包括任何子文件夹中的所有文件)。我可以使用 Visual Source Safe 来做到这一点,方法是右键单击 Visual Source Safe 中的文件夹,然后选择“显示历史记录...”,最后选中“递归”复选框并单击“确定”:

如果我使用 Visual Source Safe 执行此操作,Visual Source Safe 将在一个签入文件的降序排序(即最新签入的文件将显示在顶部)。 简而言之,我想用 Git 做我已经可以用 Visual Source Safe 做的事。

很遗憾,Git window in Visual Studio 2022 Community 没有显示这个(它只显示整体提交,但你必须点击每个整体提交才能看到为该提交签入 Git 的文件,这不如 Visual Source Safe 所做的有用)。由于我还为 Windows 安装了 Git,我可以从 DOS 提示符 运行 Git 命令,但我不知道 Git 命令和参数能够做 Visual Source Safe 可以做的事情。任何帮助将不胜感激,谢谢!

因此,在@jthill 的帮助下,我测试了 git 命令的一些选项。执行我想要的 git 命令是:

git log --name-status --oneline --pretty=format:"%x09%ad%x09%s"

--online 选项非常有用,因为它消除了一些我不太关心的信息,并将输出压缩为更容易破译信息的格式,就像 Visual Source Safe 一样。上面的 git 命令不显示提交的用户,但我是唯一一个在我的计算机上使用本地 git 存储库的用户,因此信息与我无关。我相信你可以修改 --pretty=format: 后面的选项,如果你还想显示提交的用户。我还检查了子文件夹中文件的提交测试,并且此命令也能够显示该文件在子文件夹中的提交(我相信它显示了这一点,因为子文件夹中文件的提交是主文件的一部分分支,所以我相信这个 git 命令显示了 master 分支下的所有提交)。