我正在从命令行使用Git,并试图在提交消息中添加换行符(使用Git commit -m "")而不进入Vim。

这可能吗?


当前回答

下面是在Windows上使用标准cmd.exe shell的失败解决方案列表(为您节省一些试错时间!):

git commit -m 'Hello Enter不起作用:它不会要求新的行 git commit -m "Hello输入idem git commit -m "Hello^输入idem git commit -m 'Hello^ Enter World'看起来很正常,因为它会问"More?",并允许写新的一行,但最后当执行git log时,你会看到它仍然是一行消息…

TL;DR:即使在Windows上,命令行解析的工作方式不同,^允许多行输入,在这里也没有帮助。

最后,git commit -e可能是最好的选择。

其他回答

来自Git文档:

- m <味精> ——消息= <味精> 使用给定的<msg>作为提交消息。如果给出了多个-m选项,它们的值将作为单独的段落连接起来。

所以,如果你正在寻找分组多个提交消息,这应该做的工作:

git commit -m "commit message1" -m "commit message2"

没有必要把事情复杂化。在-m "文本之后…下一行是通过按Enter得到的。当按下回车键时,出现>。当你完成后,只需输入“”并按Enter:

$ git commit -m "Another way of demonstrating multicommit messages:
>
> This is a new line written
> This is another new line written
> This one is really awesome too and we can continue doing so till ..."

$ git log -1
commit 5474e383f2eda610be6211d8697ed1503400ee42 (HEAD -> test2)
Author: ************** <*********@gmail.com>
Date:   Mon Oct 9 13:30:26 2017 +0200

Another way of demonstrating multicommit messages:

This is a new line written
This is another new line written
This one is really awesome too and we can continue doing so till ...

(编辑05-05-2021)

对于Windows用户,请使用GitBash For Windows。内置的Windows cmd不适用此方法。

在Git提交中添加换行符

尝试以下命令创建多行提交消息:

git commit -m "Demonstrate multi-line commit message in Powershell" -m "Add a title to your commit after -m enclosed in quotes,
then add the body of your comment after a second -m.
Press ENTER before closing the quotes to add a line break.
Repeat as needed.
Then close the quotes and hit ENTER twice to apply the commit."

然后验证你做了什么:

git log -1

你应该得到这样的结果:

截图来自我使用PowerShell和Poshgit创建的一个示例。

这适用于所有终端和操作系统AFAIK。

下面是bash的示例:

导致这个提交:

在我看来,最初的提交信息行应该是简短的,而不是一段一段的。所以使用 Git commit -m "<short_message>" 就足够了

在此之后,为了扩展我们可以使用的初始提交消息

Git提交—修改

这将打开vim,然后我们可以输入提交消息的解释,在我看来,这比命令行更容易。

从命令行使用Git和Bash,你可以做到以下几点:

git commit -m "this is
> a line
> with new lines
> maybe"

当你想要新的一行时,只需输入并按Enter,“>”符号意味着你已经按了Enter,并且有一个新的行。其他答案也适用。