Git merge - no-ff with -m选项

时间:2016-10-17 15:42:56

标签: git github merge

有一个快速但非常具体的问题。我正在使用--no-ff选项将分支合并回我的主服务器,并且我还在同一命令(git merge --no-ff -m"message" feature1)中使用-m添加合并提交消息。我有github设置使用vim作为我的默认提交消息编辑器,并通过vim我的提交体限制为72个字符。

当我尝试使用上述消息进行合并提交时,我无法控制限制正文中允许的字符数。有没有办法使用merge-no-ff并强制它为合并消息打开vim,或者使用-m并在我知道我已经达到72个字符时手动强制它到新行。

提前致谢。

1 个答案:

答案 0 :(得分:3)

-m标志采用预先格式化的提交消息。如果您希望在其中包含换行符或其他形式的空格,则必须包括换行符或其他形式的空格。

例如,要将合并消息设置为:

hello

world

你可以使用:

git merge --no-ff -m 'hello

world'

(假设一个典型的shell,例如/bin/sh/bin/bash,允许在引用的字符串中嵌入换行符;例如,此方法在tcsh中不起作用。

通常,如果您要提供复杂的消息,最好将其放入文件并使用-F标志,而不是-m标志。另请参阅-t标记,其中包含模板文件,以及-e(或--edit)标记,这会强制使用您的交互编辑器,即使初始消息随-m-F提供。

换句话说:

  • 使用-t <template>在模板文件上运行编辑器;或
  • 使用-m <message> 而不是运行编辑器并以字符串形式提供消息;或
  • 使用-F <file> 而不是运行编辑器并从文件中提供消息;或
  • 使用-m <message> --edit-F <file> --edit提供消息,但毕竟运行编辑器。

有关详细信息,请参阅the git commit documentation