我正在从命令行使用Git,并试图在提交消息中添加换行符(使用Git commit -m "")而不进入Vim。
这可能吗?
我正在从命令行使用Git,并试图在提交消息中添加换行符(使用Git commit -m "")而不进入Vim。
这可能吗?
当前回答
在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"
遗憾的是,git似乎不允许在其消息中出现任何换行符。上面已经有各种合理的解决方案,但在编写脚本时,这些都很烦人。这里文档也可以工作,但是处理起来可能有点麻烦(比如yaml文件)
以下是我所做的:
git commit \
--message "Subject" \
--message "First line$(echo)Second line$(echo)Third Line"
虽然这仍然很难看,但它允许“一行程序”,这可能仍然有用。由于字符串通常是变量或与变量组合在一起,因此可以将丑陋的字符串保持到最小。
如果您使用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'
就我个人而言,我发现在vi(或任何你选择的git编辑器)中修改提交消息比在命令行中更容易,在git提交后立即执行git commit——modify。
在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的示例:
导致这个提交: