除了编写别名或脚本之外,是否还有更短的命令来获取特定提交的差异?
git diff 15dc8^..15dc8
如果你只给一个提交id git diff 15dc8,它就会对HEAD进行不同的提交。
除了编写别名或脚本之外,是否还有更短的命令来获取特定提交的差异?
git diff 15dc8^..15dc8
如果你只给一个提交id git diff 15dc8,它就会对HEAD进行不同的提交。
当前回答
保罗的解决方案达到了我的期望。
$ git diff HEAD^1
另外,添加像上面提到的hobs这样的别名也很有用。如果您将以下内容放在~/的[alias]部分中。Gitconfig文件,然后您可以使用简写来查看头和前之间的差异。
[alias]
diff-last = diff HEAD^1
然后运行$ git diff-last将得到结果。请注意,这还将包括您尚未提交的任何更改以及提交之间的差异。如果你想忽略你还没有提交的更改,那么你可以使用diff直接比较HEAD和它的父类:
$ git diff HEAD^1 HEAD
其他回答
使用git show $COMMIT。它将向您显示提交的日志消息,以及特定提交的差异。
保罗的解决方案达到了我的期望。
$ git diff HEAD^1
另外,添加像上面提到的hobs这样的别名也很有用。如果您将以下内容放在~/的[alias]部分中。Gitconfig文件,然后您可以使用简写来查看头和前之间的差异。
[alias]
diff-last = diff HEAD^1
然后运行$ git diff-last将得到结果。请注意,这还将包括您尚未提交的任何更改以及提交之间的差异。如果你想忽略你还没有提交的更改,那么你可以使用diff直接比较HEAD和它的父类:
$ git diff HEAD^1 HEAD
git diff 15dc8 15dce~1
~1表示“父母”,~2表示“祖父母”,等等。
正如mipadi指出的,您可以使用git show $COMMIT,但这也会显示一些报头和提交消息。如果你想要一个直接的差异,使用git show——pretty=format:%b $COMMIT。
这显然不是很简短,所以我将这个别名保留在.gitconfig中
[alias]
sd = show --pretty=format:%b
这使我可以使用git sd $ committ来显示diff。
许多提到的例子(例如git diff 15dc8^!,或git diff 15dc8^..15dc8)不工作,如果你正在使用Z shell和extendedglob选项集。你可以通过以下三种方法之一来修复它:
Unsetopt extendedglob(和/或从.zshrc中删除它) setopt NO_NOMATCH(和/或在.zshrc中设置它) 每次使用反斜杠转义插入符号和砰砰声,例如,git diff 15dc8\^\!