Git 从最后N个提交中获取差异的速记?

Git 从最后N个提交中获取差异的速记?,git,Git,我知道我能做到: git diff HEAD^..HEAD 但是有没有更容易记住的速记,比如: git diff foo N 其中N可以是从现在开始的任意数量的提交,以获得的累积差异 来自: 修订参数的后缀~表示提交对象,它是命名提交对象的第代父级,仅位于第一个父级之后。 也就是说,rev~3相当于rev^^^,后者相当于rev^1^1^1 考虑以下示例: 是等效的表单(感谢注释中提到的HEAD^..表单)。 (作为注释,它们不等同于git diff HEAD ^,因为它使用的是工作目录,而

我知道我能做到:

git diff HEAD^..HEAD
但是有没有更容易记住的速记,比如:

git diff foo N
其中
N
可以是从现在开始的任意数量的提交,以获得的累积差异

来自:

修订参数的后缀
~
表示提交对象,它是命名提交对象的第
代父级,仅位于第一个父级之后。
也就是说,
rev~3
相当于
rev^^^
,后者相当于
rev^1^1^1

考虑以下示例:

是等效的表单(感谢注释中提到的
HEAD^..
表单)。
(作为注释,它们不等同于git diff HEAD ^,因为它使用的是工作目录,而不是最后一次提交)

因此:


应该做你需要做的事情(如评论中提到的)。

使用
git diff HEAD~N
。或者使用
git-diff-HEAD~N..
排除未提交的更改。

只是一个小问题:
git-diff-HEAD^HEAD
git-diff-HEAD^
不等价-后者显示了
HEAD^
和工作树之间的更改。从这个问题(虽然不太清楚)我猜他想要
git diff HEAD~15 HEAD
。当使用范围表示法,但忽略一侧的ref时,它将使用
HEAD
作为默认值。因此,
git diff HEAD~15..
是一个较短的选项。@chrisk:noted(并添加到答案中)。谢谢。我只是觉得另一个答案有点冗长。
git diff HEAD^..HEAD
git diff HEAD^..
git diff HEAD^ HEAD
git diff HEAD~15       # diff the working tree with the 15th previous commit
git diff HEAD~15 HEAD  # diff the last commit  with the 15th previous commit