Git:看我上次的提交

时间:2010-02-09 18:42:54

标签: git

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

git "last commit" log
Google中的

让我无处可去。并且

git diff HEAD^..HEAD
当然,

并不是我所需要的,因为它也迸发了变化的内涵。

15 个答案:

答案 0 :(得分:310)

根据评论确定,OP似乎正在寻找

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

这也非常接近你从svn statussvn log -v得到的输出,很多人从颠覆到git都很熟悉。

--name-status是关键所在;如本问题中的其他人所述,您可以使用git log -1git showgit diff来获得相同类型的输出。就个人而言,我倾向于在查看个别修订时使用git show <rev>

答案 1 :(得分:172)

使用git show

git show --summary

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

答案 2 :(得分:84)

git log -1 --stat

可行吗

答案 3 :(得分:34)

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

git show --name-only

因为它列出只是上次提交中的文件而没有给你整个guts

输出的一个例子是:

commit  fkh889hiuhb069e44254b4925d2b580a602
Author: Lord Vader <darth@deathstar.empire.gov>
Date:   Sat May 4 16:50:32 2168 -0700

Changed shield frequencies to prevent Millenium Falcon landing

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

答案 4 :(得分:33)

查看上次提交

git log -1

要查看最后2次提交

git log -2

等...

答案 5 :(得分:20)

git log -1 --name-status

我的工作是否适用。

答案 6 :(得分:11)

$ git diff --name-only HEAD^..HEAD

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

答案 7 :(得分:11)

查看上次提交更改

git show HEAD

或者查看最后一次提交更改

git show HEAD~1

进一步将上面的'1'替换为所需的提交序列号。

答案 8 :(得分:6)

git diff --stat HEAD

这显示与上次提交相同的diffstat。

答案 9 :(得分:5)

在执行多次提交或克隆/拉取存储库之后,您可能希望查看已提交的提交。只需检查这些简单的解决方案,即可查看您的提交历史记录(从上次/最近提交到第一次提交)。

对于最后一次提交,只需触发此命令:git log -1。有关更多有趣的内容,请参阅下文 -

  1. 查看提交ID(SHA-1校验和),作者姓名&lt;邮件ID&gt;,日期和时间以及提交邮件 -

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

    git log --stat
    
  3. 以一些漂亮的格式查看提交历史:)(后面是一些预建选项) -

    • 如果你有太多的提交需要审核,这个命令会以简洁的单行显示:

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

      git log --pretty=short
      git log --pretty=medium
      git log --pretty=full
      git log --pretty=fuller
      
  4. 您甚至可以使用format选项 -

    使用自己的输出格式
    git log --pretty=format:"%an, %ae - %s"
    

    其中%an - 作者姓名,%ae - 作者电子邮件,%s - 提交主题等

  5. 这可以帮助您处理提交历史记录。有关详细信息,请单击here

答案 10 :(得分:1)

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

git status

这会自动显示上次提交中的行差异。

答案 11 :(得分:0)

如果您要谈论的是在对某个较早的提交执行git checkout后找到最重要的提交并且忘记在执行结帐之前写下HEAD的哈希值),以上大部分内容都无法使您回到起点。 git log-[some#] 仅显示HEAD的 CURRENT位置中的日志,这不一定是最后的提交(项目状态)。签出将断开HEAD并将其指向您签出的任何内容。

您可以查看整个 git reflog ,直到到达引用原始克隆的条目为止。顺便说一句,如果您在克隆项目到执行结帐之间进行了任何提交,那么这也不起作用。否则,您可以希望本地计算机上的所有提交都在服务器上,然后重新克隆整个项目。

希望这会有所帮助。

答案 12 :(得分:0)

您可以运行

 git show --source

显示最新提交中所有已更改文件的作者,日期,提交消息和 diff --git

答案 13 :(得分:0)

在 git 中单独获取我的最后一次提交消息

git log --format=%B -n 1 $(git log -1 --pretty=format:"%h") | cat -

答案 14 :(得分:0)

如果你只想看到上次提交的文件名

 git diff HEAD@{1} --name-only

如果您还想查看内容更改,请删除 --name-only

如果您想将当前状态与较旧的提交进行比较,请增加 {n}