您可以在 2 个分支上执行 'git diff' 但将其限制为仅一个目录子树吗?

Can you do a 'git diff' on 2 branches but limit it to only one directory sub-tree?

我正在开发一个大型 Web 项目,该项目包含大量用于执行 RESTful API、身份验证等的代码。大型团队负责所有这些工作。我只负责该项目的科学计算内核,一个目录中大约有 20 个文件。

有没有办法在两个分支之间做一个 'git diff' 并且仅限于单个目录中的那些文件?

如果我执行 'git diff master my_branch',我会在数百个与我无关的文件中看到增量。当然,我可以通过执行 'git diff master my_branch -- file1'、'git diff master my_branch -- file 2' 等在我关心的目录中一个文件一个文件地执行它,但这非常乏味。

我想做的基本上是 'git diff master my_branch -- /root/foo/scientific_modules/*.py' 或类似的事情。

假设您的目录名称是 "root" 并且您正在其中执行命令,只需从路径选项中排除 "root" (就像您问题中的示例一样):

git diff master my_branch -- foo/scientific_modules/*.py