我发现我经常需要进行这样的操作,比如当我做了一些更改并提交后,需要查找我在那里做的事情以确定接下来要做什么,或者确保在将其推送到远程之前没有添加任何意外的内容。
诚然,diff HEAD^ HEAD
输入起来足够快(git di
TABH
TAB←^ H
TAB),但它仍然感觉应该有更好的方法。
最简单的方法是什么来查看最近一次提交所做的所有更改?
尝试使用git show
。如果没有其他选项,它将显示最新提交的差异。
git show $something
以用户友好的方式显示$something
的内容。当$something
指向一个文件时,git show
将显示该文件的内容。当它指向一个提交时,Git会显示该提交(作者、日期、提交日志和差异)。没有更多参数的git show
等同于git show HEAD
。
# the equivalent command (dry run) for pull/push
git log ^branch1 branch2
git log branch1 ^branch 2
git show
# to view the content of the last commit
git show
git log --cc
显示一个或多个对象(blob、tree、tag 和 commit)。对于 commits,它显示日志消息和文本差异。它还以 git diff-tree --cc 生成的特殊格式呈现合并提交。
从 git v>2.6 开始,你可以使用 --cc
标志添加到日志中。
git log --cc
它将显示带有差异的完整日志。
git diff-tree --cc HEAD
非常类似于git log --cc
。在幕后,git show
是此命令的别名。
git show
,但知道 log --cc
也很好。当我需要了解最近的三个提交时,这可能会派上用场。 - leftaroundabout$> alias gd="diff HEAD^ HEAD"
这个应该可以解决问题。现在你可以使用:
$> gd
然后你的命令就会运行。
将alias
命令添加到你的~/.bashrc
文件中,或者类似地,你就不必在每个控制台会话的开头写它了。
信息:使用 git diff
的最短语法似乎是:
git diff @^!
例如:git diff HEAD^!
或者使用最短的git show
,如上所述。
有关语法含义,请参见https://git-scm.com/docs/gitrevisions#_other_rev_parent_shorthand_notations中的r1^!
。
show
会这样吗?我通常使用它来显示某个版本的整个文件;从未想过当没有参数时它会显示差异。 - leftaroundaboutgit show <commit_id>
会显示给定提交的日志信息和文本差异。 如果没有提交ID,则使用HEAD。 - Frodon