git diff中提交参数的顺序

时间:2015-07-16 12:47:31

标签: git git-diff

git命令的顺序是什么

git diff [--options] <commit> <commit> [--] [<path>…]

将不同的提交相互比较?好像我想把新的与我需要做的旧的比较

git diff [--options] <New_commit> <Old_commit>以查看当前差异?

我通常会git diff [--options] <Old_commit> <New_commit>

但那似乎是错的?

当我这样做时

$ git diff `git rev-list --since="jun 30 2014" --reverse origin/master | head -1` `git rev-list --until="dec 31 2014" origin/master | head -1` --shortstat 

1072 files changed, 389650 insertions(+), 39180 deletions(-)

但是当我做的时候

$ git diff --stat `git rev-list --until="dec 31 2014" origin/master | head -1`

我得到的打印输出:

384 files changed, 61255 insertions(+), 20526 deletions(-)

哪个不接近300000.所以我的问题是我是否应该首先插入新提交和旧提交sedond,如:

 $ git diff `git rev-list --until="dec 31 2014" origin/master | head -1`..`git rev-list --since="jun 30 2014" --reverse origin/master | head -1` 

我无法找到有关我应该以哪种顺序插入提交的文档,以便查看我的新提交和旧提交之间的区别。也许你可以为我澄清这个?

提前致谢。

修改 我问的原因是我想要

  1. 知道在给定旧提交的情况下添加到新提交的新代码行数,

  2. 我想计算新提交中的代码行数。

1 个答案:

答案 0 :(得分:17)

TL; DR

使用以下git-diff语法

git diff [--options] <commit> <commit> [--] [<path>...]
  • 第一个<commit>对应于基本提交,
  • 第二个<commit>对应于与基本提交进行比较的提交。

使用数学启发的符号,

git diff <x> <x+∆x>

会显示差异∆x,而

git diff <x+∆x> <x>

会显示差异-∆x

请注意,因为两个提交不需要以任何方式排序,无论是按时间顺序还是拓扑结构,称之为&#34; old&#34;和&#34;新&#34; (正如你所做的那样)有点误导。

更多细节

只需查看git-diff man page,您就可以学到很多东西。在说明部分下,您将找到

git diff [--options] <commit> <commit> [--] [<path>...]
     

这是为了查看两个任意<commit>之间的变化。

当然,这并没有告诉你哪个提交是哪个,但是,在 Examples 部分下,你会发现一些有启发性的例子:

git diff HEAD^ HEAD
     

[...]   比较上次提交和最后一次提交之前的版本。

git diff topic...master
     

[...]

     

自主题分支启动以来主分支上发生的更改。