请参阅当前状态和上次提交之间的差异

tra*_*097 68 git

有时当我即将提交时,我无法回想起自上次提交以来发生了什么变化.我怎样才能看到代码当前状态和最后一次提交的差异?

Kla*_*urn 93

如果尚未向索引添加任何文件(带git add),只需执行

git diff
Run Code Online (Sandbox Code Playgroud)

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

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

git diff --cached
Run Code Online (Sandbox Code Playgroud)

最后,如果你想看到工作树中所做的更改与最新的commit(HEAD)相比你可以(正如卡洛斯指出的那样)

git diff HEAD
Run Code Online (Sandbox Code Playgroud)

这些变化的组合git diffgit diff --cached.

  • `git diff` 将工作树与索引进行比较,而不是 HEAD。 (3认同)
  • 很好地解决了它的`git diff --cached HEAD^` :) (2认同)

tal*_*mjr 20

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

git diff HEAD^
Run Code Online (Sandbox Code Playgroud)

这将比较HEAD与之前的提交.人们也可以这样做

git diff HEAD^^
Run Code Online (Sandbox Code Playgroud)

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

git diff b6af6qc
Run Code Online (Sandbox Code Playgroud)

b6af6qc提交哈希的示例在哪里.

  • Windows的git cmd版本的提示-您必须使用插入符号自己转义插入符号(^)。因此,“ git diff HEAD ^”应为“ git diff HEAD ^^”。同样,应将“ HEAD ^^”输入为“ HEAD ^^^^”。 (2认同)

Abi*_*uez 6

你尝试过吗git show

\n
\n

描述:\n显示一个或多个对象(blob、树、标签和提交)。

\n

对于提交,它显示日志消息和文本差异。它还以特殊格式呈现由 git\ndiff-tree --cc 生成的合并提交。

\n

摘自 git 帮助

\n
\n

您不需要写入上次提交的 HEAD 或 SHA-1,只需键入git show

\n

我认为这对您的需求以及其他答案都有帮助,但根据具体情况,打字会少一些,信息会多一些。

\n

在这里我添加了实际显示的示例git show

\n
>> git show\n\ncommit 49832d33b5329fff95ba0a86002ee8d5a762f3ae (HEAD -> my_new_branch, master)\nAuthor: Abimael Dom\xc3\xadnguez <my_mail@mail.com>\nDate:   Thu Jan 7 13:05:38 2021 -0600\n\n    This is the commit message of the last commit\n\ndiff --git a/some_folder/some_file.txt b/some_folder/some_file.txt\nindex 59fb665..5c36cde 100644\n--- a/some_folder/some_file.txt\n+++ b/some_folder/some_file.txt\n@@ -3,6 +3,6 @@\n This is the content of the last updated file\n some text\n some text\n-text deleted\n+text added\n some text\n some text\n\n
Run Code Online (Sandbox Code Playgroud)\n


dek*_*dev 5

这也显示了差异以及哪些文件已更改/修改。

$ git status 
Run Code Online (Sandbox Code Playgroud)

显示索引文件和当前 HEAD 提交之间有差异的路径、工作树和索引文件之间有差异的路径以及工作树中未被 git 跟踪的路径(并且不会被 gitignore(5) 忽略) )。第一个是通过运行 git commit 提交的内容;第二个和第三个是您可以通过在运行 git commit 之前运行 git add 来提交的内容。

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