我正在从命令行使用Git,并试图在提交消息中添加换行符(使用Git commit -m "")而不进入Vim。
这可能吗?
我正在从命令行使用Git,并试图在提交消息中添加换行符(使用Git commit -m "")而不进入Vim。
这可能吗?
当前回答
从命令行使用Git和Bash,你可以做到以下几点:
git commit -m "this is
> a line
> with new lines
> maybe"
当你想要新的一行时,只需输入并按Enter,“>”符号意味着你已经按了Enter,并且有一个新的行。其他答案也适用。
其他回答
如果你只是想要一个标题行和一个内容行,你可以使用:
git commit -m "My head line" -m "My content line."
注意,这会创建单独的段落,而不是行。所以在每两个-m行之间会有一个空行,例如:
My head line
My content line.
当然,它是如何完成的取决于您的shell。在Bash中,可以在消息周围使用单引号,也可以只打开引号,这将使Bash提示另一行,直到关闭引号。是这样的:
git commit -m 'Message
goes
here'
或者,你可以使用“here文档”(也称为heredoc):
git commit -F- <<EOF
Message
goes
here
EOF
你应该能够使用
git commit -m $'first line\nsecond line'
从Bash手册:
形式为$'string'的单词被特殊处理。这个词扩展为 属性指定的反斜杠转义字符替换为 ANSI C标准。
这包括如上所示的对换行符的支持,以及十六进制和Unicode代码等。转到链接部分查看反斜杠转义字符的列表。
在Bash/Zsh中,你可以简单地在引号内使用文字换行:
git commit -m 'Multi-line
commit
message'
ANSI-C引用也适用于Bash/Zsh:
git commit -m $' multiline \ncommit\nmessage'
您还可以指示Git使用您选择的编辑器来编辑提交消息。来自git-commit的文档:
用于编辑提交日志消息的编辑器将从 GIT_EDITOR环境变量,核心。编辑器配置 变量、VISUAL环境变量或编辑器 环境变量(按此顺序)。详见git-var。
因此,使用nano编辑您的消息,例如,您可以运行:
export GIT_EDITOR=nano
git commit
来自Git文档:
- m <味精> ——消息= <味精> 使用给定的<msg>作为提交消息。如果给出了多个-m选项,它们的值将作为单独的段落连接起来。
所以,如果你正在寻找分组多个提交消息,这应该做的工作:
git commit -m "commit message1" -m "commit message2"