获取“git checkout tag”以产生与“git pull”差异列表相同的输出

时间:2014-06-28 01:26:03

标签: git tags diff git-checkout

我只是想知道是否有某种标签或参数我们可以提供给

git checkout tags/{tag_name}

调用会提供类似于常规git pull的输出。我只是在寻找一个命令,根据新标签中提供的代码对当前版本进行差异化。

我确定我可以通过两个步骤创建一个bash脚本来执行此操作,但我想知道Git中是否有一种方法可以执行此操作。

如果没有,那么获得差异的建议(在结账后之前)会是什么?如果我不能用Git在一行中这样做,那么我编写我自己的脚本来执行此操作。

1 个答案:

答案 0 :(得分:0)

git pull后面的输出实际上是git merge的默认输出,因为pull实际上只是一个提取,然后是合并。这是一个例子:

$ git pull origin master
From c:/Users/Keoki/Documents/GitHub/bare
 * branch            master     -> FETCH_HEAD
Merge made by the 'recursive' strategy.
 hello.txt | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 hello.txt

$ git reset --hard head^
HEAD is now at 53c0907 Revert "Change `git diff` meta color to cyan (OS X)"

$ git merge origin/master
Merge made by the 'recursive' strategy.
 hello.txt | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 hello.txt

所以你从上面看到,输出,称为“差异统计”,实际上是Git中正常mege的一部分。

获取Diff Stat输出

没有选项可以通过 git checkout获取差异统计输出。 但是,您可以使用 git diff --stat获得相同的输出。

要在从分支,标记或提交X切换到另一个分支,标记或提交Y之前获取统计信息,只需使用

git diff --stat X Y

您可以在检查Y out之前或之后执行此操作,因为在这种情况下git diff不会在当前工作副本中区分任何内容。

文档

根据official git-merge(1) Manual Page,配置变量merge.stat控制

  

是否在合并结束时在ORIG_HEAD和合并结果之间打印diffstat。默认为True。

另请参阅