使用文件扩展名过滤 `git show <commitId>` 结果

问题描述 投票:0回答:4

考虑一个非常大的变更集。执行

git show <sha1>
后,您将获得与所有文件相关的更改。但我只对
.cpp
文件所做的更改感兴趣,其余文件对我的分析没有用处。

如何从

git show
结果中过滤掉它们?

任何命令或选项。

git file patch
4个回答
5
投票

git show -- *.cpp
有效。如果没有
--
,glob 似乎无法正常工作。


2
投票

您可以通过提供要匹配的路径或模式来过滤

git show
输出的差异。所以在你的情况下:

git show "*.cpp"

您需要对您的 shell 使用适当的引号,以确保 Git 可以看到通配符 (

*.cpp
) 并且它不会首先被您的 shell 扩展。


2
投票

@ElipieKay 在评论部分给出的答案对我有用。

打印具有 .cpp 扩展名的文件名。

git show --name-status 29a9f891fd -- *.cpp      

显示对扩展名为 .cpp 的文件所做的更改。

git show 29a9f891fd -- *.cpp

0
投票

显然 Git 已经发展,并允许更简单和直观的语法,例如:

git show b5v712n *.java

这仅显示任何子目录中 Java 文件的所有更改。在 Windows 上使用版本 2.45.2 进行了测试。

© www.soinside.com 2019 - 2024. All rights reserved.