如何在 github 中获得两次提交之间更改文件的*完整*列表

How can I get a *complete* list of changed files between two commits in github

(我知道有人问过类似的问题,例如 GitHub API - how to compare 2 commits 但我不认为这是重复的)

作为我们构建过程的一部分,我们需要比较 github 中的两个提交,并遍历 每个 文件之间的更改。 a lovely API for comparing commits but it silently maxes out at 300 file changes, and while the API supports pagination you can only page through the list of commits, not the associated list of files. All my googling suggests that neither the gh CLI interface or the GraphQL API 也支持不同的提交 ID。

据我所知,我的选择是

  1. 在每个构建上克隆整个 repo,并在命令行 运行 git diff $lastReleaseHash...$newReleaseHash --name-status,这似乎效率低下
  2. 调用 github 的 compare API 但忽略文件列表,因为它最多为 300,而是翻阅所有提交,然后为每个提交请求更改文件列表,然后手动将它们拼接成一个整体差异(即跟踪提交之间的重命名,忽略在提交范围内创建然后删除的文件,超级乏味且容易出错)

肯定有更好的选择?!

您可以使用

git clone --bare

仅使用 VC 信息(无文件)克隆存储库。然后做一个git diff.