Git:查看我的最后一次提交

589

我只想看到在最后一次提交中提交的文件,就像我在运行git commit时看到的列表一样。不幸的是,搜索

git "last commit" log

在谷歌搜索无果。而

git diff HEAD^..HEAD

当然,这不是我需要的,因为它会涌出更改的内部细节。


55
谢谢,我其实只需要 git diff HEAD^..HEAD 命令! - Ameen
3
@Ameen 更快地输入 git show -1 - user26742873
20个回答

534

通过评论得知,似乎OP正在寻找

$ git log --name-status HEAD^..HEAD

这也非常接近于你从subversion获取的svn status或者svn log -v的输出,对于许多从subversion转到git的人来说,这是很熟悉的。

--name-status在这里是关键;正如其他人在这个问题中提到的,你可以使用git log -1git showgit diff来获得相同类型的输出。个人而言,我倾向于使用git show <rev>查看单个版本。


8
我认为这个命令会显示最后一次提交,对吗?所以,要查看我的最后一次提交,我会输入 git log --stat --author nroose -n 1 - nroose
1
可以使用以下命令进行缩写和简写:git show --name-status --oneline - jasonleonhard
1
如果使用强制推送,该命令将显示最后一个补丁而不是最新的(按时间顺序)提交...在某些用例中可能会有些棘手。 - Olix
1
什么也没显示给我看 :-( - S Itzik
1
只需使用-1替换HEAD^...HEAD即可,来代表最后一次提交。 - Avizipi
显示剩余2条评论

331

使用 git show 命令:

git show --summary

这将显示已创建或已删除文件的名称,但不包括已更改文件的名称。 git show 命令支持各种输出格式,可以显示有关提交的各种信息。


1
@jamessan git show --stat 很接近,但是否有一个视图,在文件旁边出现'修改'或'添加'一词? - Dan Rosenstark
4
如果你只需要文件的名称(比 --stat 更少),你可能也想看看 --name-status--name-only 开关。 - Mike Seplowitz
1
@MikeSep,这正是我所需要的。如果你把它作为答案,我会将其标记为最佳答案,因为对我来说确实如此。我正在使用git log --name-status HEAD^..HEAD - Dan Rosenstark
1
这绝对是提供的解决方案中最简单的一个。 - Matthew
如果您只调用 git show,您将看到您最后一次提交的差异。 - bobobobo

161
git log -1 --stat

可以工作


其他解决方案似乎会输出未提交的更改,而不仅仅是最后一次提交,这不是我想要的。这个解决方案似乎只输出提交的更改。 - akinuri

73

到目前为止,最简单的命令是:

git show --name-only

由于它只列出最后一次提交中的文件,而不给你整个代码库。

输出示例:

commit  fkh889hiuhb069e44254b4925d2b580a602
Author: Kylo Ren <Kylo@darkside.empire.gov>
Date:   Sat May 4 16:50:32 2168 -0700

Changed shield frequencies to prevent Millennium Falcon landing

 www/controllers/landing_ba_controller.js             
 www/controllers/landing_b_controller.js            
 www/controllers/landing_bp_controller.js          
 www/controllers/landing_h_controller.js          
 www/controllers/landing_w_controller.js  
 www/htdocs/robots.txt                        
 www/htdocs/templates/shields_FAQ.html       

12
考虑使用 --name-status 而不是 --name-only - Asclepius
6
问题就在这里了,帝国正在使用PHP来防御网格! - ptim
4
在Stackoverflow上我见过的最好的例子!“那不是你要找的提交。” - SMBiggs
对于那些在之后加入的人,如果您查看2020-01-14进行的编辑,其他评论将更有意义。好吧,除了第一个评论,它已经很有意义了。 - hlongmore
2
如果您仍然想要状态,但也想要缩短的形式,请考虑使用 git show --oneline --name-status - hlongmore

71

查看最后一次提交:

git log -1

查看最近的2次提交:

git log -2

等等,等等...


3
但问题中说到:“...想要看到最近一次提交中被提交的 文件”。 - Peter Mortensen
2
我知道这个讨论已经过去很久了,但是请听 @PeterMortensen 的建议,如果添加了 --name-status 选项,则 $ git log -1 --name-status 与 @Mike Seplowitz 建议的 $ git log --name-status HEAD^..HEAD 是相同的。 - projektorius96
1
这对我来说非常完美,因为在我的情况下,我只想获取提交哈希并不需要其他任何信息。这只显示提交哈希作者日期——从最近的开始。简洁明了。 - ouflak

34

查看最新提交更改

git show HEAD

或者查看倒数第二次提交的更改

git show HEAD~1

还可以进一步将上述中的“1”替换为所需的提交序列号。


27

当您进行了几次提交或克隆/拉取存储库后,您可能想要查看已经进行的提交。只需检查以下简单的解决方案即可查看您的提交历史记录(从最近的提交到第一个)。

对于最新的提交,只需执行此命令:git log -1。有关更多有趣的内容,请参见以下内容 -

  1. 要查看提交ID(SHA-1校验和)、作者姓名<邮件地址>、日期和时间以及提交消息 -

git log
  • 要查看更多的统计信息,如在该提交期间更改的所有文件的名称以及插入/删除的数量。在审查代码时,这非常方便 -

  • git log --stat
    
  • 查看漂亮格式的提交历史记录 :) (下面是一些预设选项)-

    • 如果您有太多的提交需要审查,这个命令将把它们显示在一个整洁的单行中:

  • git log --pretty=oneline
    
  • 要查看您提交的简短、中等、完整甚至更多详细信息,请分别使用以下内容-

  • git log --pretty=short
    git log --pretty=medium
    git log --pretty=full
    git log --pretty=fuller
    
  • 你甚至可以使用 format 选项来使用自己的输出格式 -

  • git log --pretty=format:"%an, %ae - %s"
    

    其中 %an 代表作者名字,%ae 代表作者邮箱,%s 代表提交的主题等等。

    这可以帮助您查看提交历史记录。欲了解更多信息,请点击此处


    23
    git log -1 --name-status
    

    对我来说起作用。


    13
    $ git diff --name-only HEAD^..HEAD
    这个命令可以用来查看最近一次提交与上一次提交之间有哪些文件发生了变化。

    或者

    $ git log --name-only HEAD^..HEAD
    这个命令可以用来查看最近一次提交所涉及的所有文件。

    1
    这正是我需要的。是否有一些东西可以说明它是被修改、添加还是删除的?或者带有一个字母,类似svn风格的? - Dan Rosenstark
    1
    现在明白了。git log --name-status HEAD^..HEAD - Dan Rosenstark
    2
    使用 git log ... HEAD^..HEAD 这种方式不如直接使用 git log ... -1 HEAD 或者更好的 git show ... HEAD,这样会更简单。 - Jakub Narębski
    在浏览了几篇Stackoverflow的帖子后,我找到了需要的答案。我只需要文件,不需要其他任何东西。不需要提交摘要,只需要最新提交的文件。谢谢! - sdot257

    12

    此问题已在上面得到回答,其中提到了使用git log /其他命令列出最后提交的文件名。如果有人想要查看最后一次提交中所做的所有更改(行差异),可以使用以下命令-

    git diff HEAD^ HEAD
    git show
    

    这会自动显示最后一次提交中的行差异。


    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接