在 git 中,有哪些好的约定可以将多个注释格式化为单个提交

问题描述 投票:0回答:4

我想知道人们通常如何在一次提交中分离出多个评论。明星?逗号?分开的线?只是想知道你认为什么是最好的。

我现在通过 Emacs 添加评论时正在使用它,但不确定我是否喜欢它:

Added error messaging
Cleaned up sign-up UI
Added recaptcha

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# Committer: Conrad Chu <[email protected]>
#
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       modified:   app/controllers/api_controller.rb
#       modified:   app/controllers/users_controller.rb
#       modified:   app/models/user.rb
#       modified:   app/views/users/new.html.erb
#       modified:   app/views/users/show.html.erb
#       modified:   config/environment.rb
#       modified:   db/migrate/20090923001219_create_users.rb
#       modified:   db/schema.rb
#       modified:   doc/README
#       modified:   public/stylesheets/master.css
#       new file:   vendor/plugins/recaptcha/.gitignore
#       new file:   vendor/plugins/recaptcha/CHANGELOG
git dvcs
4个回答
18
投票

Git 对日志消息有非常严格的约定,但规则很简单:

  1. 第一行是提交的摘要
  2. 第一行可能有范围描述前缀“module:”
  3. 第二行是空的
  4. 然后根据需要进行段落讨论

首先,您应该使用这些约定,因为演示工具甚至依赖它们(第二行为空很重要,在许多情况下,您只会看到第一行摘要。)

使用 git,提交应该很小,所以第一个答案当然是,您不应该在一次提交中修改很多内容。您应该有 3 次提交,而不是 1 次。

但是,你可以在提交日志中写一篇完整的文章,在那里你可以详细描述他们的变化(动机、废弃的设计、想法)。如果这三个变化确实是一体的,本文将清楚地说明原因。

我发现更多说明描述了相同的 Git Commit 消息约定,并提供了 git 命令取决于特定格式的示例。 (其中大部分都是基于现有约定:通过电子邮件发送补丁。)


3
投票

我必须同意@kaizer.se。使用 git 的功能将修改分阶段到 3 个不同的提交中。通过这种方式,您可以清楚地了解每次修改的内容,并且您的提交评论将告诉您原因。在合并回主分支时(假设您正在使用功能 mod 的分支),您可以将这些较小的提交汇总到一个合并中。


3
投票

我努力不提交需要太多评论的更改,但如果有需要,我通常会这样做:

Multiple changes:

- done this
- fixed that
- removed other

Maybe some additional explanations.

就功能而言,尽量保持提交的原子性。当我忘记在每个完成的功能之后实际提交时,我会为此准备一大堆或几行代码。


1
投票

看这里,https://git-scm.com/book/en/v2/Distributed-Git-Contributing-to-a-Project,有提交指南和示例提交。

© www.soinside.com 2019 - 2024. All rights reserved.