如何获取 git commit 中的文件列表? [复制]

Posted

技术标签:

【中文标题】如何获取 git commit 中的文件列表? [复制]【英文标题】:How can I get a list of files in a git commit? [duplicate] 【发布时间】:2014-12-12 20:53:17 【问题描述】:

我在master 上提交了一些文件,并将一些本地分支与master 分支合并。如何获取master 分支上的已提交文件列表?

【问题讨论】:

你说你已经提交了,你到底想做什么? 如果我们暂存了一些文件,我们可以看到带有 git 状态的文件。如何查看已提交的文件?我需要像 git status 这样的命令来列出提交的文件。 我不确定你的意思,也许git ls-files是你需要的。 我想知道我在分支中提交的文件都是什么。 gitk 将显示所有提交和提交的所有文件的信息。你也可以做 git log 【参考方案1】:

如何获取master 分支上已提交文件的列表?

git ls-tree 列出树对象的内容。默认情况下,它会列出树对象中引用的每个对象的权限、类型、哈希和关联文件名,但您可以使用--name-only 选项告诉它只打印文件名。

git ls-tree --name-only master

编辑(感谢 Alex):您可能还想使用 -r 标志递归到子树(即“嵌套”在提交的顶部树对象中的树对象)。

git ls-tree -r --name-only master

【讨论】:

很可能你想添加 -r 进行递归【参考方案2】:

我经常用

git ls-files

在给定的普通格式中,它只是打印出当前分支中提交的文件。 要查看不同分支的文件,请添加--with-tree 参数:

git ls-files --with-tree=master

列出master 分支的所有文件。

The docs of git ls-files 提供更多微调的可能性。

【讨论】:

以上是关于如何获取 git commit 中的文件列表? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何从git的任何分支中获取分支列表?

当我在vim中填写git commit消息时,如何在文件列表中显示不同的颜色

如何删除git中的文件

在 git commit 之前隐藏文件中的字符串

【Git原理】深入理解git add和git commit命令

我可以“git commit”一个文件并忽略其内容更改吗?