有时,当我要进行提交时,我无法确切记得自上次提交以来发生的变化。如何查看代码当前状态和最后一次提交的差异?
有时,当我要进行提交时,我无法确切记得自上次提交以来发生的变化。如何查看代码当前状态和最后一次提交的差异?
Answers:
如果您尚未将任何文件添加到索引中(使用git add),只需执行
git diff
这将显示您的工作树和索引之间的差异。
如果已将文件添加到索引,则需要执行此操作以显示索引和最后一次提交(HEAD)之间的差异。
git diff --cached
最后,如果您想查看工作树中与最新提交(HEAD)相比所做的更改,您可以(如卡洛斯所指出的那样)
git diff HEAD
这些变化的组合git diff和git diff --cached。
git diff在一个diff消息中将索引的状态和上一次提交的状态?
git diff --cached HEAD^:)
如果您刚刚进行了提交,或者想查看与当前状态相比,上一次提交中发生了什么变化(假设您有干净的工作树),则可以使用:
git diff HEAD^
这会将HEAD与之前的提交进行比较。一个人也可以做
git diff HEAD^^
与2之前提交的比赛状态进行比较。要查看当前状态与某个提交之间的区别,只需执行以下操作:
git diff b6af6qc
哪里b6af6qc是提交哈希的示例。
HEAD^是最新提交之前的提交。
这也显示了差异以及已更改/修改了哪些文件。
$ git status
显示索引文件和当前HEAD提交之间具有差异的路径,工作树和索引文件之间具有差异的路径以及git不能跟踪的工作路径(并且gitignore(5)不会忽略) )。首先是通过运行git commit提交的内容;第二和第三个是可以在运行git commit之前通过运行git add提交的内容。
https://www.kernel.org/pub/software/scm/git/docs/git-status.html
这也适用于我:
# The last one
git diff HEAD~1 HEAD
# The last but one, etc...
git diff HEAD~2 HEAD~1
这通常适用于线性历史记录。如果还有合并提交,这可能会变得更加棘手。我建议您仔细阅读本文档,以获取完整,完整的说明,尤其是有关提交树插图的示例:
git diff将工作树与索引而不是HEAD进行比较。