欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Git命令(查看仓库历史记录)

程序员文章站 2022-05-13 18:53:34
...

git log 命令

// 终端显示 git log 命令的输出结果
zhanghuabin-mac:course-git-blog-project zhanghuabin$ git log

commit a3dc99a197c66ccb87e3f4905502a6c6eddd15b1
Author: Richard Kalehoff <aaa@qq.com.com>
Date:   Mon Dec 5 16:34:15 2016 -0500

    Center content on page

commit 6f04ddd1fb41934c52e290bc937e45f9cd5949aa
Author: Richard Kalehoff <aaa@qq.com.com>
Date:   Mon Dec 5 16:30:40 2016 -0500

    Add breakpoint for large-sized screens
:

上面是这个仓库中的提交日志,显示了多次提交。每次提交显示了提交的 SHA、提交人、提交日期以及提交说明(一个简短描述,说明在这个提交中作了哪些更改)。下面的 : 冒号表示可以显示更多的输出行,我们可以按 J 键或向下箭头可以一次向下滚动一行。当冒号变为单词 END 时,表示最后一个提交。要离开分页器按下 q 键即可。

git log 命令用于显示仓库中所有 commit 的信息。默认情况下,该命令会显示仓库中每个 commit 的:

  • SHA
  • 作者
  • 日期
  • 消息

git 使用命令行分页器 less 浏览所有信息。以下是 less 的重要快捷键:

  • 要按行向下滚动,使用 j 或 ↓
  • 要按行向上滚动,使用 k 或 ↑
  • d 键可以向下滚动半个页面,用 u 键可以向上滚动半个页面
  • 要退出,使用 q

Git命令(查看仓库历史记录)

git log --oneline 选项用于更改 git log 显示信息的方式。此命令:

  • 每行显示一个 commit
  • 显示 commit 的 SHA 的前 7 个字符
  • 显示 commit 的消息

Git命令(查看仓库历史记录)

git log --stat,用于更改 git log 显示信息的方式。此命令会:

  • 显示被修改的文件
  • 显示添加/删除的行数
  • 显示一个摘要,其中包含修改/删除的总文件数和总行数

Git命令(查看仓库历史记录)

上图示例中,它会同时包括实际的代码更改或对 css 文件所做的补丁 输出。diff 差异和补丁指的是同一回事,补丁显示的是文件的原始版本和更新版本之间的差异。我们看到的是 css 文件,它出现在一个名为 a 的目录中,但你并不会在库中实际看到这个目录,然后是第二个版本,它出现在 b 目录中,因为它是第二个。这两个名称相同,因为我们看到的是同一个文件的两个不同版本。下一行显示的是文件更改前第一个版本的哈希值和更改后的哈希值,它们也是文件的新旧版本。下面是 CSS 文件的实际代码,前面带有加号的绿色行表示这些行是此次提交添加的。

@@ -38,6 +38,11 @@ p {
     line-height: 1.5;
 }

它可以告诉我们文件哪里做出了编辑,这说明在文件的较旧或原始版本中(-38),这段代码来自第 38 行并显示了六行代码。在文件的较新或当前版本中(+38),但现在有 11 行代码,原来的六行加上新的五行,变成了 11 行代码。

git 按行进行跟踪编辑,所以如果对一行进行编辑,它会显示该行被移除,然后再被添加。补丁输出的重要内容是我们正在查看的文件和修改,另外我们有时也需要知道文件中哪些地方进行了修改。

git log -p(--patch),用来更改 git log 显示信息的方式。此命令会向默认输出中添加以下信息:

  • 显示被修改的文件
  • 显示添加/删除的行所在的位置
  • 显示做出的实际更改

git log -p 输出结果详细说明

Git命令(查看仓库历史记录)

Git命令(查看仓库历史记录)

git log --statgit log -p 都是非常实用的命令。运行 git log -p --stat,它同时显示这两种信息,并且统计信息显示在补丁信息上方。

Git命令(查看仓库历史记录)

git log -p -w 中的 -w 忽略所有的空间空格更改。即使一行有空格而另一行没有空格,这也会忽略差异。

上一部分需要在补丁输出中不断向下滚动,以便找到正确的 commit 并查看其信息。如果能显示特定 commit 的详情,而不用关心仓库中的所有其他内容?

实际上有两种实现方式!

  • git log 提供你要查看的 commit 的 SHA
  • 使用新的 git show 命令

可以向所有这些命令提供 commit 的 SHA 作为最后一个参数:

Git命令(查看仓库历史记录)

通过提供 SHA,git log -p 命令将从这条 commit 开始!无需滚动并逐条查阅!注意,它还会显示在所提供的 SHA 之前提交的所有 commit 信息

git show,另一个显示特定 commit 的命令。它将仅显示一个 commit。因此,如果你看不到任何其他 commit,不要惊慌。它只显示一个 commit。git show 命令的输出和 git log -p 命令的完全一样。

但是,git show 可以与我们了解过的大部分其他选项一起使用:

  • --stat - 显示更改了多少文件,以及添加/删除的行数
  • -p--patch - 显示默认补丁信息,但是如果使用了 --stat,将不显示补丁信息,因此传入 -p 以再次添加该信息
  • -w - 忽略空格变化

更多 git 配置参数 可查看 https://git-scm.com/docs/git

相关标签: git命令