如何在回购中的特定模块(或多个模块)的 2 个分支之间显示 git diff --name-only

How to show git diff --name-only between 2 branches for a specific module (or multiple modules) within a repo

我正在尝试找到一种方法让 git 显示特定子模块的 2 个提交点(标签或分支)之间的 "name only" 更改列表。

我可以通过执行以下操作使用 git diff 轻松完成单个回购:

git diff --name-only commitPointA..commitPointB

(这里有another answer讲到这里,供参考)

但这列出了存储库的所有文件更改,我是 运行 命令所在的存储库。

如何细化更改列表以仅显示对特定模块或同一存储库中的模块集合的更改?

@torek 指出了正确的方向,建议我查看 <path> 参数。这是我按模块获得精炼列表的方法。

单个模块内的更改...

git diff --name-only commitPointA..commitPointB ./moduleA

多个模块内的变化...

git diff --name-only commitPointA..commitPointB ./moduleA ./moduleB

这里可能值得说明的是,模块名称仅表示存储库中该模块的根文件夹的名称。

就这样,简单到最后。


通过路径指定的另一种方法是通过 grep 传输输出并指定您真正感兴趣的内容,例如模块名称(我知道这听起来很明显)。

这是一个简单的例子:

git diff --name-only commitPointA..commitPointB | grep 'module-name'

您也可以扩展它以搜索多个值,只需查看 grep man page 了解更多信息。