获取名称、状态和提交 sha 的差异

Getting the diff with name, status, and commit sha

我想获取拉取请求中已修改文件的列表,并按提交 sha 对它们进行分组。 我只找到了 git diff --name-status 但它没有 return 提交 sha:

我有一个使用 git format-patch -1 的备份计划,但结果是包含文件内容的大文件,这使得它解析效率很低。

我想知道是否有其他方法可以解决这个问题?

谢谢

列出提交中修改的文件运行

git log --name-only

您可以使用大量 git log 选项修改输出。

但这与备份无关,因此您可能需要更改备份计划。

我找到了我需要的东西:

git show --diff-filter=dr --name-only sha

--diff-filter=dr 因为我想过滤掉删除或重命名的文件。

顺便说一句,我问这个是因为 GitHub API 对一次提交的文件数量有限制 returns。所以,我需要克隆 repo 并在本地进行。

@博士: 感谢您的帮助,它指引了我正确的方向。