我正在从命令行使用Git,并试图在提交消息中添加换行符(使用Git commit -m "")而不进入Vim。
这可能吗?
我正在从命令行使用Git,并试图在提交消息中添加换行符(使用Git commit -m "")而不进入Vim。
这可能吗?
当前回答
我一直在寻找这个问题的答案,因为我曾经多次看到用于检查提交消息的正则表达式。无论如何,在使用-m标志创建提交时,没有任何想法可以工作。
因此,实现多行提交消息的最简单方法是在终端中只输入git commit。 然后,你将有机会输入你想要的笔记:
不需要更复杂的方法了。
其他回答
我在Mac上使用zsh,我可以在双引号(")内发布多行提交消息。基本上,我一直键入并按回车键获取新行,但直到我关闭引号并返回,消息才被发送到Git。
在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文档:
- 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 commit -m $'first line\nsecond line'
从Bash手册:
形式为$'string'的单词被特殊处理。这个词扩展为 属性指定的反斜杠转义字符替换为 ANSI C标准。
这包括如上所示的对换行符的支持,以及十六进制和Unicode代码等。转到链接部分查看反斜杠转义字符的列表。