git命令的顺序是什么
git diff [--options] <commit> <commit> [--] [<path>…]
Run Code Online (Sandbox Code Playgroud)
将不同的提交相互比较?似乎我想将新的与我需要做的旧的进行比较
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(-)
Run Code Online (Sandbox Code Playgroud)
但是,当我这样做
$ git diff --stat `git rev-list --until="dec 31 2014" origin/master | head -1`
Run Code Online (Sandbox Code Playgroud)
我得到的打印输出:
384 files changed, 61255 insertions(+), 20526 deletions(-)
Run Code Online (Sandbox Code Playgroud)
哪个不是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`
Run Code Online (Sandbox Code Playgroud)
我找不到任何关于我应该在哪个顺序插入提交的文档,以便查看我的新提交和旧提交之间的区别.也许你可以为我澄清这个?
提前致谢.
编辑: 我问的原因是我想要的
知道在给定旧提交的情况下已添加到新提交的新代码行数,以及
我想计算新提交中的代码行数.
jub*_*0bs 19
在以下git-diff
语法中,
git diff [--options] <commit> <commit> [--] [<path>...]
Run Code Online (Sandbox Code Playgroud)
<commit>
对应于基本提交,<commit>
对应于与基本提交进行比较的提交.使用数学启发的符号,
git diff <x> <x+?x>
Run Code Online (Sandbox Code Playgroud)
会告诉你差异?x
,而
git diff <x+?x> <x>
Run Code Online (Sandbox Code Playgroud)
会告诉你差异-?x
.
请注意,因为两个提交不需要以任何方式排序,无论是按时间顺序还是拓扑结构,将它们称为"旧"和"新"(如您所做)都有点误导.
只需查看git-diff
手册页,您就可以学到很多东西.在" 描述"部分下,您将找到
Run Code Online (Sandbox Code Playgroud)git diff [--options] <commit> <commit> [--] [<path>...]
这是为了查看两个任意之间的变化
<commit>
.
当然,这并没有告诉你哪个提交是哪个,但是,在示例部分下面,你会发现一些有启发性的例子:
Run Code Online (Sandbox Code Playgroud)git diff HEAD^ HEAD
[...]比较上次提交和最后一次提交之前的版本.
和
Run Code Online (Sandbox Code Playgroud)git diff topic...master
[...]
自主题分支启动以来主分支上发生的更改.