git:所有更改文件的列表,包括子模块中的文件

标签 git git-submodules git-diff

我想获取所有文件的列表,这些文件在两次提交之间发生了更改,包括子模块中的文件。

我知道我可以做到:

git diff --name-only --diff-filter=ACMR ${revision} HEAD

它返回一个文件列表,包括子模块路径,但不包括其中的文件。

例子: 我更新了一个子模块。我提交了 super 项目。现在我想获取所有已修改文件的列表。

您知道完成这项工作的方法吗?

最佳答案

2017 年更新:正如我在“see diff of commit on submodule in gitlab”中提到的,


2012 年原始答案(2017 年 Git 2.14 之前)

也许简单的一行就足够了:

git submodule foreach --recursive git diff --name-status

这实际上会列出子模块子模块中的文件。
(--recursive选项来自git1.7.3+)

关于git:所有更改文件的列表,包括子模块中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10757091/

相关文章:

git - 如何使用寻呼机进行长 git add --patch 大块头?

svn - git svn 使用 svn 分支导入存储库

git - 为什么 git 子模块更新失败?

git - 您如何处理使用子模块部署 Rails 应用程序?

git - Sublime Text 中按单词而不是行进行比较

git - Git列出自特定提交以来已修改(未添加)的所有文件,包括已添加并随后修改的文件

Git:如何获取自某些提交以来所有修订的列表?

git add -A :/on Git 2. X 和 pathspec 的关系

ios - 无法从 XCode 推送到 Github 主分支

git - 如何在不要求每个子存储库的密码的情况下使用子模块克隆 git 存储库