Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何禁用从命令行设置git提交消息?_Git_Bash_Zsh - Fatal编程技术网

如何禁用从命令行设置git提交消息?

如何禁用从命令行设置git提交消息?,git,bash,zsh,Git,Bash,Zsh,我发现,能够一次性指定提交消息,会诱使我编写简短的一行提交消息。我通常会遵循git commit-m“fix things”的思路。但是每当我关闭-m选项,我的编辑器弹出时,我就更有可能写出一条好的提交消息 在过去,我通过禁用我不想再使用的功能来养成习惯。例如:我禁用了vim中的箭头键,这最终使我使用了hjkl。这非常有效,我想尝试对git提交消息执行同样的操作。我希望git(或bash或zsh)对我大喊大叫,因为我试图使用commit-m 我可以完全围绕git命令编写一个包装器,但也许您有其他

我发现,能够一次性指定提交消息,会诱使我编写简短的一行提交消息。我通常会遵循git commit-m“fix things”的思路。但是每当我关闭
-m
选项,我的编辑器弹出时,我就更有可能写出一条好的提交消息

在过去,我通过禁用我不想再使用的功能来养成习惯。例如:我禁用了vim中的箭头键,这最终使我使用了hjkl。这非常有效,我想尝试对git提交消息执行同样的操作。我希望git(或bash或zsh)对我大喊大叫,因为我试图使用
commit-m


我可以完全围绕git命令编写一个包装器,但也许您有其他解决方案,我可能会学到一些很酷的东西!我喜欢各种魔术和诡计。

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

#!/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
#/bin/bash
#删除空白,至少应保留50个字符。
如果($(sed's/\s//g'$1“| wc-c)<50));然后
回显消息太短。>&2.
出口1
fi

无法立即测试,但请尝试创建一个函数
mgit(){git“$@”-m”“;}
,并使用
mgit
而不是
git
。如果
git
只考虑后续的重复参数,那么这应该是可行的。或者像这样
函数git(){args=“$@”;如果[-z$(grep“commit”@МаъСъъъСъъСъъъъъdevnull添加
-m”“
不会影响前面的选项。
git commit-m“fix”-m”“
仍然只是创建带有消息的提交“修复”。+1我使用此技术来确保提交消息是正确的。