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

这可能吗?


当前回答

来自Git文档:

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

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

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

其他回答

我在Mac上使用zsh,我可以在双引号(")内发布多行提交消息。基本上,我一直键入并按回车键获取新行,但直到我关闭引号并返回,消息才被发送到Git。

来自Git文档:

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

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

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

如果您使用Bash,点击C-x C-e (Ctrl+x Ctrl+e),它将在您首选的编辑器中打开当前命令。

您可以通过调整VISUAL和editor来更改首选编辑器。

这就是我的。bashrc文件:

export ALTERNATE_EDITOR=''
export EDITOR='emacsclient -t'
export VISUAL='emacsclient -c'
export SUDO_EDITOR='emacsclient -t'

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

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

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

当然,它是如何完成的取决于您的shell。在Bash中,可以在消息周围使用单引号,也可以只打开引号,这将使Bash提示另一行,直到关闭引号。是这样的:

git commit -m 'Message

goes
here'

或者,你可以使用“here文档”(也称为heredoc):

git commit -F- <<EOF
Message

goes
here
EOF