[英]See diff between current state and last commit
有时,当我要进行提交时,我不记得自上次提交以来到底发生了什么变化。 如何查看代码当前状态和上次提交的差异?
如果您还没有向索引添加任何文件(使用git add
),只需执行
git diff
这将显示您的工作树和索引之间的差异。
如果您已将文件添加到索引,则需要执行此操作以显示索引与上次提交 (HEAD) 之间的差异。
git diff --cached
最后,如果您想查看与最新提交 ( HEAD
) 相比在工作树中所做的更改,您可以(正如 Carlos 指出的那样)
git diff HEAD
这些更改是git diff
和git diff --cached
的组合。
如果您刚刚进行了一次提交,或者想查看与当前状态相比在上次提交中发生了什么变化(假设您有一个干净的工作树),您可以使用:
git diff HEAD^
这会将 HEAD 与之前的提交进行比较。 一个也可以做
git diff HEAD^^
与 2 次提交前的游戏状态进行比较。 要查看当前状态和某个提交之间的差异,只需执行以下操作:
git diff b6af6qc
其中b6af6qc
是提交哈希的示例。
这也显示了差异以及哪些文件已被更改/修改。
$ git status
显示索引文件和当前 HEAD 提交之间存在差异的路径,工作树和索引文件之间存在差异的路径,以及工作树中未被 git 跟踪的路径(并且不被 gitignore(5) 忽略) )。 第一个是您将通过运行 git commit 提交的内容; 第二个和第三个是你可以通过在运行 git commit 之前运行 git add 来提交的内容。
https://www.kernel.org/pub/software/scm/git/docs/git-status.html
您要求 git 区分当前/最后一次提交,它的简写为HEAD
。
所以git diff HEAD
会将工作树的当前状态与当前提交进行比较。
这也适用于我:
# The last one
git diff HEAD~1 HEAD
# The last but one, etc...
git diff HEAD~2 HEAD~1
这通常适用于线性历史。 如果还有合并提交,这可能会变得更加棘手。 我建议你查看这个文档以获得一个很好和完整的解释,特别是那个提交树图示例:
你有没有试过git show
?
描述:显示一个或多个对象(斑点、树、标签和提交)。
对于提交,它显示日志消息和文本差异。 它还以由 git diff-tree --cc 生成的特殊格式呈现合并提交。
取自 git help
您不需要编写 HEAD 或上次提交的 SHA-1,只需键入git show
。
我认为这对您的需求以及其他答案都有帮助,但根据具体情况,可以减少打字次数和提供更多信息。
在这里,我添加了git show
实际显示的示例:
>> git show
commit 49832d33b5329fff95ba0a86002ee8d5a762f3ae (HEAD -> my_new_branch, master)
Author: Abimael Domínguez <my_mail@mail.com>
Date: Thu Jan 7 13:05:38 2021 -0600
This is the commit message of the last commit
diff --git a/some_folder/some_file.txt b/some_folder/some_file.txt
index 59fb665..5c36cde 100644
--- a/some_folder/some_file.txt
+++ b/some_folder/some_file.txt
@@ -3,6 +3,6 @@
This is the content of the last updated file
some text
some text
-text deleted
+text added
some text
some text
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.