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

时间:2013-06-21 21:19:47

标签: git

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

6 个答案:

答案 0 :(得分:82)

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

即可
git diff

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

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

git diff --cached

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

git diff HEAD

这些更改是git diffgit diff --cached的组合。

答案 1 :(得分:16)

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

git diff HEAD^

这会将HEAD与之前的提交进行比较。也可以做

git diff HEAD^^

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

git diff b6af6qc

其中b6af6qc是提交哈希的示例。

答案 2 :(得分:3)

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

因此git diff HEAD会将工作树的当前状态与当前提交进行比较。

答案 3 :(得分:2)

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

$ git Status 

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

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

答案 4 :(得分:2)

这也对我有用:

alt.Chart(data).transform_aggregate(
    daily_count = 'count(Name)',
    groupby=['Date', 'descriptor']
).mark_bar().encode(
    x = alt.X('month(Date):O'),
    y = alt.Y('mean(daily_count):Q'),
    color = alt.Color('descriptor:N')
)

这通常适用于线性历史记录。如果还有合并提交,这可能会变得更加棘手。我建议您仔细阅读本文档,以获取完整,完整的说明,尤其是有关提交树插图的示例:

https://git-scm.com/docs/gitrevisions

答案 5 :(得分:2)

你试过git show吗?

<块引用>

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

对于提交,它显示日志消息和文本差异。它也是 以 git 生成的特殊格式呈现合并提交 差异树--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