我正在从命令行使用Git,并试图在提交消息中添加换行符(使用Git commit -m "")而不进入Vim。
这可能吗?
我正在从命令行使用Git,并试图在提交消息中添加换行符(使用Git commit -m "")而不进入Vim。
这可能吗?
当前回答
我希望这不会偏离发布的问题太远,而是设置默认编辑器,然后使用
git commit -e
可能会舒服得多。
其他回答
我没有看到任何人提到如果你不提供消息,它会为你打开nano(至少在Linux中),在那里你可以写多行…
只需要这样:
git commit
我在Mac上使用zsh,我可以在双引号(")内发布多行提交消息。基本上,我一直键入并按回车键获取新行,但直到我关闭引号并返回,消息才被发送到Git。
没有必要把事情复杂化。在-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不适用此方法。
当然,它是如何完成的取决于您的shell。在Bash中,可以在消息周围使用单引号,也可以只打开引号,这将使Bash提示另一行,直到关闭引号。是这样的:
git commit -m 'Message
goes
here'
或者,你可以使用“here文档”(也称为heredoc):
git commit -F- <<EOF
Message
goes
here
EOF
比如
git commit -m"test\ntest"
这并不奏效,但就像
git commit -m"$(echo -e "test\ntest")"
有用,但不是很漂亮。你在PATH中设置了一个git- commitb命令,它是这样做的:
#!/bin/bash
message=$1
git commit -m"$(echo -e "$message")"
像这样使用它:
git commitlb "line1\nline2\nline3"
提醒一下,我感觉一般惯例是第一行是摘要行,然后是两个换行符,然后是提交消息中的扩展消息,所以这样做会打破惯例。你当然可以:
git commitlb "line1\n\nline2\nline3"