从命令行添加换行符到git commit -m
我从命令行使用git,并试图添加一个换行符(使用git commit -m“”)而不进入vim
。
这可能吗?
当然,如何完成取决于你的shell。 在bash中,你可以在消息的周围使用单引号,只要将引号保持为打开状态,这会使bash提示input另一行,直到closures引用。 喜欢这个:
git commit -m 'Message goes here'
或者,你可以使用“这里的文件”:
git commit -F- <<EOF Message goes here EOF
使用bash命令行中的git可以执行以下操作:
git commit -m "this is > a line > with new lines > maybe"
只需input并在需要换行时按Enter键 ,“>”符号表示您已按Enter键,并且有新行。 其他答案的工作也。
如果你只想要一个头条和一条内容线,你可以使用:
git commit -m "My head line" -m "My content line."
你应该可以使用
git commit -m $'first line\nsecond line'
从Bash手册 :
$' string 'forms的单词被专门处理。 字扩展为string ,反斜杠转义字符被ANSI C标准指定。
这包括如上所示的对换行符的支持,以及hex和Unicode代码等。 转到链接部分查看反斜线转义字符的列表。
添加换行符到你的git提交
尝试以下操作以创build多行提交消息:
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."
然后validation你做了什么:
git log -1
你应该得到这样的结果:
屏幕截图来自我使用Poshgit使用Powershell设置的示例。
做的事情如:
git commit -m"test\ntest"
不起作用,但是像这样:
git commit -m"$(echo -e "test\ntest")"
作品,但不是很漂亮。 你在你的PATH
设置了一个git-commitlb
命令,它执行如下的操作:
#!/bin/bash message=$1 git commit -m"$(echo -e "$message")"
并像这样使用它:
git commitlb "line1\nline2\nline3"
警告的话,我有一种感觉,一般约定是以总结线作为第一行,然后是两个换行符,然后是提交信息中的扩展信息,所以做这样的事情会打破这个约定。 你当然可以这样做:
git commitlb "line1\n\nline2\nline3"
我在Mac上使用zsh,我可以在双引号(“)中发布多行提交消息。基本上我继续input并按回车换行,但是消息不会发送到git,直到我closures引号并返回。
我希望这不是太远离发布的问题,但不会设置默认编辑器 ,然后使用
git commit -e
要舒服多less?
从git文档
-m <msg>
–message = <MSG>
使用给定的<msg>作为提交消息。 如果给出了多个-m选项,则它们的值被连接为单独的段落。
所以,如果你正在寻找分组多个提交消息,这应该做的工作。
git commit -m "commit message1" -m "commit message2"
你可以使用git commit -m "$(echo)"
或者git commit -m $'\n'
就个人而言,我发现在vi
(或者你select的git编辑器)而不是在命令行上修改提交信息是最容易的,通过在git commit --amend
之后执行git commit --amend
。
如果你正在使用bash,点击Cx Ce
( Ctrl + x Ctrl + e ),它会在你喜欢的编辑器中打开当前的命令。
你可以通过调整VISUAL
和EDITOR
来改变首选的编辑EDITOR
。
这就是我在我的.bashrc
:
export ALTERNATE_EDITOR='' export EDITOR='emacsclient -t' export VISUAL='emacsclient -c' export SUDO_EDITOR='emacsclient -t'
没有必要复杂的东西。 在“m”文本…下一行是通过按ENTER键获得的。当input按>出现。完成后,只需把“,然后按ENTER
$ git commit -m "Another way of demonstrating multicommit msg > > 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 Anothere way of demonstrating multicommit msg 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 ...
希望有所帮助