如何识别下一次提交将是合并提交?

时间:2014-05-21 09:05:34

标签: git githooks

我正在编写一个commit-msg钩子来检查消息格式。 但是当提交将成为合并提交时,我有一些规则无法实施。 特别是消息中的行长。我强制第一行的长度小于70个字符,但是当通过merge准备提交消息时这没有意义,并且由于分支名称通常要长得多。

我认为这可以通过greping消息的第一行来实现" merge"字符串,但这对我来说似乎不正确。例如在窗户上,有一个" MERGING"合并正在进行时,在git bash提示符中显示的字符串。是否有任何git变量或类似的信号,我将要合并?

正如评论中所指出的,在合并期间创建了一个.git/MERGE_MGS文件并包含准备好的合并消息。但是还创建了一个空的.git/MERGE_MODE文件,仅用于表示合并正在进行中。这就是我想要的。

1 个答案:

答案 0 :(得分:1)

The prepare-commit-msg docs说:

  

需要一到三个参数。第一个是包含提交日志消息的文件的名称。第二个是提交消息的来源,可以是:message(如果给出了-m或-F选项);模板(如果给出了-t选项或者设置了配置选项commit.template); merge(如果提交是合并或.git / MERGE_MSG文件存在);壁球(如果存在.git / SQUASH_MSG文件);或者提交,然后是提交SHA1(如果给出了-c,-C或--amend选项)。

所以if test $2 = merge应该这样做。