查看当前状态和上次提交之间的差异

有时当我要提交时,我不记得自上次提交以来发生了什么变化。 我怎样才能看到代码的当前状态和上次提交的差异?

如果你还没有添加任何文件到索引(使用git add ),只需要做

 git diff 

这将显示您的工作树和索引之间的差异。

如果您已将文件添加到索引,则需要执行此操作来显示索引与上次提交(HEAD)之间的差异。

 git diff --cached 

最后,如果你想看到在工作树上做的更改与最新的提交( HEAD )相比,你可以(正如Carlos指出的那样)

 git diff HEAD 

这些变化是git diffgit diff --cached

如果您刚刚提交了一个提交,或者想要查看上一次提交与当前状态相比发生了什么变化(假设您有干净的工作树),则可以使用:

 git diff HEAD^ 

这将比较HEAD和之前的提交。 也可以做

 git diff HEAD^^ 

以比较2提交前的状态。 要查看当前状态与某个提交之间的差异,只需执行以下操作:

 git diff b6af6qc 

其中b6af6qc是一个提交哈希的例子。

你要求git来区分当前/最后一个提交,它有一个HEAD的简写。

所以git diff HEAD会比较工作树的当前状态和当前的提交。

这也显示了不同之处以及哪些文件已被修改/修改。

 $ git Status 

显示索引文件和当前HEAD提交之间存在差异的path,工作树和索引文件之间存在差异的path,以及未被git跟踪的工作树中的path(并且不会被gitignore(5)忽略) )。 首先是你会通过运行git commit来提交; 第二和第三个是你可以通过在运行git commit之前运行git add来提交。

https://www.kernel.org/pub/software/scm/git/docs/git-status.html