Git show <commit>并获取文件子集的diff

时间:2015-10-06 14:01:35

标签: git filter git-diff git-show

我正在寻找一种解决方案来使用git show <commit>命令来区分提交。

通常我会:

$> git show 12f00d

正如预期的那样,我获得了在给定提交中修改的所有文件的所有差异。

现在我在重构后有一个很大的提交(许多文件被更改/移动),我只需要知道在这个提交中递归地在所有xml文件中发生了什么变化。 我有很多.java,.xsl,.properties文件和只有几个.xml文件。

我尝试了以下命令但没有成功:

$> git show 12f00d -L 0,0:*.xml 
    > incorrect syntax

$> git show 12f00d *.xml 
    > no result

$> git show 12f00d **/*.xml 
    > Return the root pom.xml but not recursively

$> git show 12f00d **/**.xml 
    > Return the root pom.xml but not recursively

$> git show 12f00d -- *.xml 
    > no result

$> git show 12f00d -- **/*.xml 
    > Return the root pom.xml but not recursively

$> git show 12f00d -- **/**.xml 
    > Return the root pom.xml but not recursively

我使用命令git diff <commit>尝试了相同的选项。

我在Linux CentOS(bash终端)下使用Git版本1.8.4。

你知道git是否可以使用这种过滤器(也许是另一个命令)

1 个答案:

答案 0 :(得分:1)

试试这个: git show 12f00d '*.xml'