首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gitk和钩子脚本

gitk和钩子脚本
EN

Stack Overflow用户
提问于 2016-03-15 17:20:19
回答 1查看 195关注 0票数 4

我想部署一个钩子脚本来控制提交消息的格式。为此,我使用prepare-commit-msg脚本。

我想检查提交消息是否以3位数字开头。如果是这种情况,脚本将返回0,否则返回1

它可以很好地与git命令一起使用,但在与gitk一起使用时就不行了。当脚本返回1时,提交不会中止。我也没有设法显示消息(解释为什么提交将被中止的信息消息)。

有没有办法在gitk中使用钩子脚本

谢谢。

PS:我使用git版本1.8.5.3

EN

回答 1

Stack Overflow用户

发布于 2018-06-13 13:28:17

正如在Git client-side hooks中提到的,prepare-commit-msg挂钩在提交消息编辑器启动之前运行,但在创建默认消息之后运行。

所以这不会满足你的需求。使用commit-msg钩子会更好。

commit-msg钩子接受一个参数,该参数同样是包含开发人员编写的提交消息的临时文件的路径。

如果此脚本退出时不为零,Git将中止提交过程,因此您可以在允许提交之前使用它来验证项目状态或提交消息。

在此之后,这取决于您的脚本是如何编写的:请参阅"How do I prompt the user from within a commit-msg hook?",尤其是this answer

如果您使用gitkgit-gui,您将无法提示,因为您在"exec < /dev/tty“行上得到一个错误。

您可以将其替换为在您的hook bash脚本中定义的函数

代码语言:javascript
复制
function f_askContinue {
  local myQuestion=$1

  while true; do
     read -p "${myQuestion} " -n 1 -r answer
     case $answer in
        [Yy]* ) printf "\nOK\n"; break;;
        [Nn]* )   printf "\nAbandon\n";
                  exit;;
        * ) printf "\nAnswer with Yes or No.\n";;
     esac
  done
}

f_askContinue "Do you want to continue ?"

(使其适应您希望在控件中实现的逻辑)

这将在gitk中发挥作用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36007049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档