如何禁用能够从命令行设置git commit消息?

时间:2014-03-11 09:05:59

标签: git bash zsh

我发现能够一次性指定提交消息,诱使我编写简短的一行提交消息。我经常以git commit -m "fix things"的方式结束。但是每当我放弃-m选项,并且我的编辑器弹出时,我就更有可能写出一个好的提交消息。

过去我通过禁用我不想再使用的功能来创造习惯。例如:我在vim中禁用了箭头键,这最终让我使用了hjkl。这非常有效,我想尝试为git commit消息做同样的事情。我希望git(或bash或zsh)对我大喊大叫,试图使用commit -m

可以完全围绕git命令编写一个包装器,但也许你有其他的解决方案,我可能会学到一些很酷的东西!我对各种魔法和诡计持开放态度。

1 个答案:

答案 0 :(得分:6)

您可以在prepare-commit-msg目录中创建.git/hooks挂钩以检查消息的长度,如果消息太短,则拒绝提交:

#!/bin/bash
# Remove whitespace, at least 50 characters should remain.
if (( $(sed 's/\s//g' "$1" | wc -c) < 50 )) ; then
    echo Message too short. >&2
    exit 1
fi