趋近智
origin 和 upstream使用 git commit 保存项目快照是基本的。然而,仅仅保存更改是不够的。每次提交都需要一条信息,这些信息的质量显著影响项目历史记录的有用性。可以将提交信息视为项目演变过程的记录。清晰、有用的信息能让你(以及你的协作者,如果有的话)更容易理解某项更改在几个月甚至几年后为何出现。
好的提交信息对于以下方面很重要:
git log 时,有描述性的信息能快速告诉你每次提交完成了什么。Git 提交信息的普遍接受约定遵循特定结构:
我们来分解每个部分。
主题行是提交信息中最重要的部分。当你运行 git log --oneline 等命令时,你看到的就是它。
git merge 或 git revert)相符。可以将其理解为描述此提交应用后所做的事情。示例:
Add user authentication endpointRefactor database connection logicCorrect typo in README.mdfixed stuff(太模糊)Implemented new feature for users to log in and out.(太长,不是祈使句式)fixing the css alignment issue on the main page(未大写,不是祈使句式)虽然主题行提供了快速摘要,但正文是你可以详细阐述的地方。它与主题行之间通过一条空行分隔。这种分隔很重要,因为许多 Git 工具将第一行视为主题,空行后的所有内容视为正文。
git log 等工具中的可读性。大多数文本编辑器都可以配置为自动执行此操作。Fixes #42,Addresses ticket T-123)。有些平台会根据这些引用自动将提交链接到问题。你不总是需要正文。对于非常简单的更改(如修复拼写错误),清晰的主题行可能就足够了。然而,对于任何更复杂的内容,强烈推荐提供详细的正文。
这是一个结构良好的提交信息示例:
用50个字符左右或更少字符概述更改
更详细的解释性文本,如果需要。将其折叠到大约72个字符左右。
在某些情况下,第一行被视为提交的主题,其余文本被视为正文。
将摘要与正文分隔开的空行很重要(除非你完全省略正文);
如果将两者放在一起,`log`、`shortlog` 和 `rebase` 等各种工具可能会混淆。
解释此提交正在解决的问题。着重说明你为什么要进行此更改,
而不是如何进行(代码会解释这一点)。
此更改是否有副作用或其他不直观的后果?这里是解释它们的地方。
更多段落出现在空行之后。
- 也可以使用项目符号
- 通常,项目符号使用连字符或星号,前面有一个空格,
之间有空行,但约定在这里有所不同。
如果你使用问题追踪器,请在底部放置对它们的引用,像这样:
解决:#123
另见:#456, #789
提交信息结构示例,基于社区最佳实践。
花额外的几分钟精心编写一条好的提交信息,从长远来看回报显著。它能将你的 Git 历史记录从简单的更改日志转变为理解项目发展的宝贵资源。当你需要弄清楚某段代码为何存在,或者追查回归时,清晰的提交信息可以为你节省数小时的挫败感。当你开始与他人协作时,一致且有用的提交信息对于高效的团队协作变得更加重要。现在就开始养成这个习惯,即使是对于你的个人项目;未来的你会感谢你。
这部分内容有帮助吗?
git commit 命令的官方文档,提供了其用法、参数的核心细节以及与提交消息结构相关的基本信息。© 2026 ApX Machine Learning用心打造