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`
我无法找到有关我应该以哪种顺序插入提交的文档,以便查看我的新提交和旧提交之间的区别。也许你可以为我澄清这个?
提前致谢。
修改 我问的原因是我想要
知道在给定旧提交的情况下添加到新提交的新代码行数,
我想计算新提交中的代码行数。
答案 0 :(得分:17)
使用以下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
[...]
自主题分支启动以来主分支上发生的更改。