【问题标题】:multiple linefeeds are consolidated in git commit message多个换行符合并到 git commit 消息中
【发布时间】:2012-08-09 15:02:39
【问题描述】:

我正在使用 msys git,我注意到的一件事是,当我在 vi 中编写包含两个或多个换行符的提交消息时,当它实际提交时,只会有一个换行符。

如果我这样写:

my first commit

Hello out there from the first line.


Hello out there from two linefeeds below.


它将被提交为:

my first commit

Hello out there from the first line.

Hello out there from two linefeeds below.


有没有人使用 msys git 注意到这一点,我怎样才能阻止它发生?

git 版本 1.7.10.msysgit.1

谢谢

【问题讨论】:

    标签: git msysgit


    【解决方案1】:

    如果你看一下pretty.c(负责format_commit_item() function),这似乎是提交消息的规范。

    第一个空行用于将标题与提交消息的正文分开。
    所有其他换行符被分组到不超过一个空行中,可能是因为这些提交可以通过电子邮件发送,并且审阅者不希望看到使用和滥用换行符,从而使所述电子邮件过长而无法滚动。


    OP test 确认这曾经在以前版本的 msysgit 中是可能的:

    好吧,我在 VM 中进行了一些测试,发现 Git-1.7.7-preview20111014.exe,如果我安装它然后转到 Git GUI 并打开我的存储库并提交提交,我可以在不合并的情况下进行多个换行。
    我希望他们能把它带回来,我需要它! -

    现在,Git-1.7.7-preview20111014 means commit 81143a87 (2011-10-14T06:04:08-07:00),这意味着 pretty.c was in that state (commit f67d2e82d6)
    从那时起,它(pretty.c)主要用于解析提交签名,对format_commit_item()函数没有明显的影响。


    我确认另一个 OP 的发现:

    即使使用最新的 msysgit (PortableGit-1.7.11-preview20120710),在 git gui 中编辑的提交也会保留其换行符。
    在 vi 中编辑的提交不会。

    您可以看到初始消息提交只保留每个评论一个换行符。
    我必须在 git gui 中对其进行修改,以便放置(并在提交后保留)多个换行符。

    【讨论】:

    • 在旧版本的 msysgit 中,我可以有多个换行符。我检查了我的提交消息,发现我的很多旧提交都有多个换行符。通常我会在提交中放入一些日志输出。是否有任何 git 选项可以允许我无意中禁用的多个换行符?
    • @test 我没有看到关于换行的选项。你有 GitHub 上那些旧提交的例子吗?
    • 对不起,没有。它肯定在那里。我可以在我的提交中看到多行。
    • @test 好的,那我会继续看下去的。
    • @test: 你不是第一个问的 ;) 查看meta.stackexchange.com/a/19775/6309的cmets
    猜你喜欢
    • 1970-01-01
    • 2021-09-30
    • 2015-07-08
    • 1970-01-01
    • 1970-01-01
    • 2017-10-11
    • 2021-11-23
    • 1970-01-01
    • 2016-02-04
    相关资源
    最近更新 更多