如何使用主题行和邮件正文进行git提交?

时间:2016-11-09 11:14:43

标签: git commit

我想改进我做git提交的方式,而且我一直在网上阅读。我在这里跟踪了网站http://chris.beams.io/posts/git-commit/,这导致我https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration我可以设置我的默认编辑器,但是我仍然不明白我如何与提交正文分开编辑主题行。< / p>

我以前做过:

git commit -am "message here"

但据我了解更长时间的提交,我应该使用像vim这样的编辑器(在我的mac上)

2 个答案:

答案 0 :(得分:13)

最简单的方法是在没有git commit的情况下运行-m和消息。

git commit -agit add .; git commit

的快捷方式

它将启动一个编辑器,您可以在其中输入多行的提交消息。然后保存文件,当编辑器退出时,git commit继续并使用文件中的消息。

如果您希望从单个命令执行所有操作(或者您编写需要调用git commit的脚本并且此交互提交方式不是一个选项),那么您可以提供提交主题和提交消息身体由using the -m argument two times

git commit -m "this is the subject" -m "this is the body"

在命令行中多次使用-m将消息连接为单独的段落(用空行分隔)。这非常有效,可以将主题作为第一个-m的参数,并将消息正文作为第二个-m的参数。

没有简单的方法在提交邮件正文中嵌入换行符。使用-m选项三次或更多次将生成包含空行的提交消息,这可能不是您想要的。

如果您在LinuxmacOS,并且您选择的shell是bash,则有一种丑陋但有效的方法来编写包含新行的邮件正文。将每一行嵌入引号(")以允许它们包含空格并使用$'\n'连接行,这是在命令行(或脚本)中编写特殊字符的bash方式

命令如下所示:

git commit -m "the subject" -m "the first line"$'\n'"the second line"$'\n'"the third line"

答案 1 :(得分:1)

运行:git commit -a你应该得到一个VI编辑器界面,让你输入主题行和消息。完成输入文本后按ESC键:wq