在git中禁用-m

时间:2014-03-03 21:00:15

标签: git bash

我正在努力训练自己编写更好的提交消息,因此我在~/.gitconfig

中创建了一个条目
[commit]
    template = ~/.gitmessage.txt

难题是我几乎总是使用:

git commit -m "Message here"

有时候:

git commit -am "Message here"

如何防止自己使用-m标志,以便显示我的模板并提醒我使用它?

我不需要在项目中绝对强制执行此操作,但我想让自己脱离“-m”。

Ubuntu / Bash是我的环境。

3 个答案:

答案 0 :(得分:12)

将其放入.bashrc

git() {
  for arg
  do
    if [[ $arg == -m* || $arg == -[^-]*m* ]]
    then
      annoy_me
      return 1
    fi
  done
  command git "$@"
}
annoy_me() { 
  echo "Stop using -m, $USER!" 
  echo "You are now in time out."
  settings=$(stty -g)        
  stty raw
  sleep 15
  stty "$settings"
}

annoy_me这里等待15秒,并且不能从该终端开始。

您可以将其替换为您认为适当烦人的内容,例如slmplayer -volume 100 Spice_Girls_Wannabe.mp3 < /dev/null &> /dev/null &

答案 1 :(得分:1)

您也可以编写一个名为git的shell脚本,并在真正的git之前将其放入PATH中。在它内部,你只需要检查args是否为-m,如果存在scoff你自己,如果没有调用真正的git二进制文件。

有关如何转发args的示例,请参阅this question

答案 2 :(得分:0)

我没有预见到一个可以阻止你养成习惯的答案。

但您可以尝试使用别名。这里唯一的诀窍是摆脱旧习惯,用指向模板的别名替换它。

提示:养成习惯平均需要30天