我喜欢 git log

2025-05-25

我喜欢 git log

这篇文章的标题应该是 IFLG(像 IFLS,但你知道 Git)。

但用“f***”这个词来写帖子标题可能不太好。你知道的。

Git 是最好的

真的,我超爱 Git。我觉得它超级好用,如果使用得当,可以大幅提升团队开发速度。不过,刚开始学习 Git 的时候,我总是因为无法查看Git的进度而感到沮丧,比如我的队友在做什么,我的工作和他们的工作是如何衔接的?

我尝试了一些用于 git 的 UI,但并不满意,一切看起来都很笨重,你必须退出终端去查看 UI,然后回来弄清楚你在做什么。

当我使用 git repo 时,我最喜欢的命令之一是(希望这并不奇怪)git log

这将显示所有提交的日志,基本命令输出如下内容:

commit 8c2ca7c38f50e1d837485edd946916bfdciii20a1 (HEAD -> master, origin/master)
Author: Andrew Stuntz <andrewbstuntz@gmail.com>
Date:   Mon Aug 20 10:20:27 2018 -0700

    Fixes the resetting of form fields on the settings form

commit cc309a7cb45bfcfd7e94a49387086266dff54c05
Author: Andrew Stuntz <andrewbstuntz@gmail.com>
Date:   Mon Aug 20 10:03:46 2018 -0700

    Updates some styling issues and copy

commit 2d848cec12038475b9f12070547653ab212e4e6
Author: Andrew Stuntz <andrewbstuntz@gmail.com>
Date:   Mon Aug 20 08:17:13 2018 -0700

    Add config and format correctly

commit deec64859bc9b2ef74a987437b7864f2183940e
Author: Andrew Stuntz <andrewbstuntz@gmail.com>
Date:   Thu Aug 16 11:11:42 2018 -0700

    First commit, I never know what to put here?

那么我们这里发生了什么?

commit 8c2ca7c38f50e1d837485edd946916bfdciii20a1 (HEAD -> master, origin/master)
Author: Andrew Stuntz <andrewbstuntz@gmail.com>
Date:   Mon Aug 20 10:20:27 2018 -0700

    Fixes the resetting of form fields on the settings form

总的来说,很容易就能看到提交的顺序,从上到下,从第一个提交到最后一个提交。你会看到唯一标识每个修订版本的修订号。旁边的括号里有一些关于你分支的更多信息,这些信息指的是你的HEAD(也就是你现在检出的)。“You also origin/master”表示“你的”origin/master也在这个提交中。所以“你的HEAD”和“你的origin/master”处于同一个修订版本。然后,你会看到“作者”和“日期”。最后,你会看到提交信息。到目前为止一切顺利,没什么复杂的。

深入git log命令

如果你执行了git log --help,你会得到丰富的输出。事实上,我喜欢 Git 的一个原因就是它有大量的文档,可以让你深入研究并自定义你想要的内容。我将介绍几个我最喜欢的选项,让你真正了解你的仓库里发生了什么。

第一个是git log --graph

它可以让您看到分支的图表。

* commit 8c2ca7c38f50e1d837485edd946916bfdciii20a1 (HEAD -> master, origin/master)
| Author: Andrew Stuntz <andrewbstuntz@gmail.com>
| Date:   Mon Aug 20 10:20:27 2018 -0700
|
|     Fix the resetting of form fields on the settings form
|
* commit cc309a7cb45bfcfd7e94a49387086266dff54c05
| Author: Andrew Stuntz <andrewbstuntz@gmail.com>
| Date:   Mon Aug 20 10:03:46 2018 -0700
|
|     Update some styling issues and copy
|
*   commit a9b263cacd3240f6d00e7ce401fc6f6c23988cee
|\  Merge: 2d848cec deec4187
| | Author: Andrew Stuntz <andrewbstuntz@gmail.com>
| | Date:   Mon Aug 20 08:19:44 2018 -0700
| |
| |     Merge branch 'master' of some/private/repo
| |
| *   commit deec398745bc9b2ef74a418287b7864f2183940e

现在,我们已经开始变得更加直观了,您可以轻松看到从一个分支到主分支的提交。您还可以在底部看到在合并到主分支之前对该分支所做的提交。

我非常喜欢的下一个命令是git log --oneline

这将获取输出并使每次提交成为一行,因此它大大增加了您在任何给定时间可以看到的提交数量。

8c2ca7c3 (HEAD -> master, origin/master) Fix the resetting of form fields on the settings form
cc309a7c Update some styling issues and copy
a9b263ca Merge branch 'master' of https://github.com/drews256/some/private/repo
2d848cec Add config and format correctly
deec4187 Merge pull request #1303940 from drews256/some-other-branch

现在我们有了相同数量的信息,但以 5 行简洁地显示出来。

您甚至可以将两者结合起来并获得git log --oneline --graph

* 8c2ca7c3 (HEAD -> master, origin/master) Fix the resetting of form fields on the settings form
* cc309a7c Update some styling issues and copy
*   a9b263ca Merge branch 'master' of https://github.com/drews256/some/private/repo
|\
| *   deec4187 Merge pull request #1303940 from drews256/some-other-branch

您可以获得两全其美的效果,您可以看到图表和分支以及提交,现在它们显示得简洁明了。

如果您已color为 git 仓库全局启用此功能,则将显示全彩,每个分支都有独特的颜色,方便您查看。如果您没有启用此功能,并且希望为输出添加一些颜色,您可以运行它,git log --oneline --graph --color然后您将看到每个分支都以漂亮的颜色显示,方便您浏览。

现在您可以轻松查看您的分支是什么以及在哪里,并确保您没有在不该在的地方工作。

您最喜欢 git 的哪些部分?

感谢Atlassian提供的封面照片。

文章来源:https://dev.to/drews256/i-love-git-log-off
PREV
7 Ways to Clear Your Head When Facing a Programming Problem
NEXT
成为高级开发人员的 7 个步骤,无需无休止的在线课程或等待多年