从命令行向’git commit 您所在的位置:网站首页 basement官网 从命令行向’git commit

从命令行向’git commit

2023-03-31 15:20| 来源: 网络整理| 查看: 265

关于bash:从命令行向’git commit -m’添加换行符

bashgitshell

Add line break to 'git commit -m' from the command line

我从命令行使用Git,并尝试在提交消息中添加换行符(使用git commit -m"")而不进入Vim。

这可能吗?

 相关讨论

作为一个注释,这里有一个链接,它总结了良好的提交消息约定 - github.com/erlang/otp/wiki/Writing-good-commit-messages,如果它可以帮助某人。像GIT_EDITOR="emacs" git commit -m 'paragraph1' -m 'paragraph2' -e之类的东西可以帮助你避免vim。

当然,它是如何完成的取决于你的shell。在Bash中,您可以在消息周围使用单引号,并且可以保持报价打开,这将使Bash提示另一行,直到您关闭报价。像这样:

1 2 3 4

git commit -m 'Message goes here'

或者,您可以使用"here document"(也称为heredoc):

1 2 3 4 5 6

git commit -F-  test2) Author: **************  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 ...

 相关讨论

这个答案没有得到足够的爱!这是一个很好的答案,新的线条在Github上正确显示。第一行显示为标题。

我在Mac上使用zsh,我可以在双引号(")中发布多行提交消息。基本上我一直在键入并按回新行,但是在我关闭引号并返回之前,消息不会发送到Git 。

 相关讨论

你可以在bash中做同样的事情。

在Bash / Zsh中,您只需在引号内使用文字换行符:

1 2 3

git commit -m 'Multi-line commit message'

ANSI-C引用也适用于Bash / Zsh:

git commit -m $'Multi-line commit message'

您还可以指示Git使用您选择的编辑器来编辑提交消息。从git-commit上的文档:

The editor used to edit the commit log message will be chosen from the GIT_EDITOR environment variable, the core.editor configuration variable, the VISUAL environment variable, or the EDITOR environment variable (in that order). See git-var for details.

如果您正在使用Bash,请点击C-x C-e(Ctrl + x Ctrl + e),它将在您首选的编辑器中打开当前命令。

您可以通过调整VISUAL和EDITOR来更改首选编辑器。

这就是我在.bashrc中所拥有的:

1 2 3 4

export ALTERNATE_EDITOR='' export EDITOR='emacsclient -t' export VISUAL='emacsclient -c' export SUDO_EDITOR='emacsclient -t'

 相关讨论

那么为什么有人为此投票呢?这是在bash中使用多行命令的最方便的方法,您只需将其配置一次即可。我一直在使用其他答案中显示的其他愚蠢的建议,但是一旦你学会在你喜欢的文本编辑器中编辑命令,就没有办法了。这真是令人心碎的有用,我简直无法相信我过去的岁月没有这个。

就个人而言,我发现在vi(或者你选择的git编辑器)之后修改提交消息最??简单,而不是在命令行上,通过在git commit之后执行git commit --amend。

 相关讨论

您可以实现相同的结果,而无需仅使用git commit -e进行修改。或者只是git commit,它将打开一个带有提交消息模板的编辑器。

可悲的是,git似乎不允许在其消息中添加任何换行符。 上面已经有各种合理的解决方案,但是当编写脚本时,这些解决方案很烦人。 这里的文档也可以工作,但也可能有点太讨厌处理(想想yaml文件)

这是我做的:

1 2 3

git commit \     --message"Subject" \     --message"First line$(echo)Second line$(echo)Third Line"

虽然这仍然是丑陋的,但它允许"单行",这可能仍然有用。 由于通常字符串是变量或与变量组合,因此可以将uglynes保持在最小值。

以下是Windows上带有标准cmd.exe shell的失败解决方案列表(为了节省一些试错时间!):

git commit -m 'Hello Enter不起作用:它不会要求换行

git commit -m"Hello Enter同上

git commit -m"Hello^ Enter同上

git commit -m 'Hello^ Enter World'看起来像是在工作,因为它问"更多?"并允许写一个新行,但最后在做git log时你会看到它仍然是一行的消息......

TL; DR:即使在Windows上,命令行解析的工作方式也不同,而^允许多行输入,这在这里没有帮助。

最后git commit -e可能是最好的选择。

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有