有时当我即将进行提交时,我无法回想起自上次提交以来发生了什么变化。我怎样才能看到代码当前状态和最后一次提交的差异?
答案 0 :(得分:82)
如果您尚未向索引添加任何文件(使用git add
),只需执行
git diff
这将显示工作树和索引之间的差异。
如果您已将文件添加到索引,则需要执行此操作以显示索引与上次提交(HEAD)之间的差异。
git diff --cached
最后,如果你想看到工作树中所做的更改与最新提交(HEAD
)相比,你可以(正如卡洛斯指出的那样)
git diff HEAD
这些更改是git diff
和git 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')
)
这通常适用于线性历史记录。如果还有合并提交,这可能会变得更加棘手。我建议您仔细阅读本文档,以获取完整,完整的说明,尤其是有关提交树插图的示例:
答案 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