我只是想知道是否有某种标签或参数我们可以提供给
git checkout tags/{tag_name}
调用会提供类似于常规git pull
的输出。我只是在寻找一个命令,根据新标签中提供的代码对当前版本进行差异化。
我确定我可以通过两个步骤创建一个bash脚本来执行此操作,但我想知道Git中是否有一种方法可以执行此操作。
如果没有,那么获得差异的建议(在结账后或之前)会是什么?如果我不能用Git在一行中这样做,那么我将编写我自己的脚本来执行此操作。
答案 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的一部分。
没有选项可以通过 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。