我正在从命令行使用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的示例:
导致这个提交:
其他回答
我没有看到任何人提到如果你不提供消息,它会为你打开nano(至少在Linux中),在那里你可以写多行…
只需要这样:
git commit
我一直在寻找这个问题的答案,因为我曾经多次看到用于检查提交消息的正则表达式。无论如何,在使用-m标志创建提交时,没有任何想法可以工作。
因此,实现多行提交消息的最简单方法是在终端中只输入git commit。 然后,你将有机会输入你想要的笔记:
不需要更复杂的方法了。
下面是在Windows上使用标准cmd.exe shell的失败解决方案列表(为您节省一些试错时间!):
git commit -m 'Hello Enter不起作用:它不会要求新的行 git commit -m "Hello输入idem git commit -m "Hello^输入idem git commit -m 'Hello^ Enter World'看起来很正常,因为它会问"More?",并允许写新的一行,但最后当执行git log时,你会看到它仍然是一行消息…
TL;DR:即使在Windows上,命令行解析的工作方式不同,^允许多行输入,在这里也没有帮助。
最后,git commit -e可能是最好的选择。
在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 commit -m "<short_message>" 就足够了
在此之后,为了扩展我们可以使用的初始提交消息
Git提交—修改
这将打开vim,然后我们可以输入提交消息的解释,在我看来,这比命令行更容易。