我正在尝试找到一种方法来获取git,以显示特定子模块的2个提交点(无论是标记或分支)之间的“仅名称”更改列表。
通过执行以下操作,我可以使用git diff轻松完成此操作:
git diff --name-only commitPointA..commitPointB
(这里是another answer讨论这个以供参考)
但是这列出了我在其中运行命令的存储库的所有文件更改。
如何优化更改列表以仅显示对某个模块或同一个仓库中的模块集合的更改?
答案 0 :(得分:1)
@torek指出我正确的方向,建议我查看<path>
参数。以下是我通过模块获得精确列表所做的工作。
单个模块内的变化......
git diff --name-only commitPointA..commitPointB ./moduleA
多个模块内的变化......
git diff --name-only commitPointA..commitPointB ./moduleA ./moduleB
这里可能值得一提的是,模块名称只是代表repo中该模块的根文件夹的名称。
就是这样,最后很简单。
通过路径指定的另一种方法是通过grep
管道输出,并指定一些你知道你真正感兴趣的东西,比如模块名称(我知道这听起来很明显)。
这是一个简单的例子:
git diff --name-only commitPointA..commitPointB | grep 'module-name'
您可以将其展开以搜索多个值,只需查看grep man page以获取更多信息。