【发布时间】:2017-05-21 06:01:02
【问题描述】:
考虑一个非常大的变更集。在执行git show <sha1> 后,您将获得与所有文件相关的更改。但我只对.cpp 文件所做的更改感兴趣,其余文件对我的分析没有用处。
如何从git show 结果中过滤掉它们?
任何命令或选项。
【问题讨论】:
考虑一个非常大的变更集。在执行git show <sha1> 后,您将获得与所有文件相关的更改。但我只对.cpp 文件所做的更改感兴趣,其余文件对我的分析没有用处。
如何从git show 结果中过滤掉它们?
任何命令或选项。
【问题讨论】:
git show -- *.cpp 有效。没有--,glob 似乎无法正常工作。
【讨论】:
git show -- **/*.cpp。否则,这不会显示对目录中的文件所做的更改。这确实假设您位于项目的根文件夹中。
@ElipieKay 在评论部分给出的答案对我有用。
打印具有 .cpp 扩展名的文件名。
git show --name-status 29a9f891fd -- *.cpp
显示对扩展名为 .cpp 的文件所做的更改。
git show 29a9f891fd -- *.cpp
【讨论】:
您可以通过提供要匹配的路径或模式来过滤git show 输出的差异。所以在你的情况下:
git show "*.cpp"
您需要为您的 shell 使用适当的引号,以确保 Git 可以看到通配符 (*.cpp),并且它不会被您的 shell 先扩展。
【讨论】:
git show 29a9f891fd0fdba5c16c8a31ee6cb0cd05b865ad '*.cpp' > D://patchforTransmission.cpp。没用!
git show -- *.cpp 可以工作。没有--,glob 似乎无法正常工作。