我如何打印一份包含所有提交文件的简单列表?

尽管下面列出了这些文件,但它也包含了每个文件不需要的差异信息:

git show a303aa90779efdd2f6b9d90693e2cbbbe4613c1d

当前回答

列出提交中更改的文件:

git diff --name-only SHA1^ SHA1

这不会显示日志消息、额外的换行符或任何其他混乱。这适用于任何提交,而不仅仅是当前提交。

其他回答

我个人在show命令中使用--stat和--oneline的组合:

git show --stat --oneline HEAD
git show --stat --oneline b24f5fb
git show --stat --oneline HEAD^^..HEAD

如果您不喜欢/不想要添加/删除统计信息,可以将--stat替换为--name only

git show --name-only --oneline HEAD
git show --name-only --oneline b24f5fb
git show --name-only --oneline HEAD^^..HEAD

“gitshow--stat”(谢谢Ryan)和几个sed命令的组合应该可以为您减少数据:

git show --stat <SHA1> | sed -n "/ [\w]\*|/p" | sed "s/|.\*$//"

这将只生成已修改文件的列表。

我找到了一个完美的答案:

git show --name-status --oneline <commit-hash>

这样我就能知道

刚刚修改了哪些文件(M)新添加的文件(A)删除了哪些文件(D)

git show --name-only a303aa90779efdd2f6b9d90693e2cbbbe4613c1d

如果您只想在上次提交时更改文件列表,请使用简单的单行命令:

git diff HEAD~1 --name-only