【问题标题】:Git server side hooks commit update fileGit 服务器端钩子提交更新文件
【发布时间】:2015-12-07 16:06:24
【问题描述】:

我正在尝试使用以下说明在服务器上实现 git hook commit:https://git-scm.com/book/be/v2/Customizing-Git-An-Example-Git-Enforced-Policy

我创建了文件“update”(使其可执行,放入 hooks 文件夹),发现当我执行 git commit -m "my message"git push 时该文件没有执行 - 所有这些命令都可以正常工作,但是 'update' 文件不起作用(我尝试使用简单的脚本“echo“Hello World”>> somefile.txt)

问题出在哪里?

【问题讨论】:

  • 您是否将钩子放入远程(服务器)存储库?当然,更新钩子只在远程端有效,从客户端接收提交,所以git commit 根本不参与。
  • 是的,我把钩子“更新”文件放在服务器上,但是当我“git commit”时它不起作用!
  • git commit 是完全本地操作。它不涉及任何网络事务,只有git pushgit fetchgit pull 本质上是git fetch + git merge
  • 你到底想用钩子实现什么?
  • 我想实现所有提交都以票号开头:“TicketNumber-1234” 我知道“git commit”是本地提交。当我执行“git push”时,我的“更新”脚本根本没有运行。我的回购路径是 /path/test.git/hooks - 我放了“更新”文件。

标签: git githooks


【解决方案1】:

如上所述,update hook is a server side hook

它需要在你推送到的服务器上,在裸仓库中:repo.git/hook/update

这就解释了为什么git commit(本地操作)不会触发服务器端挂钩。

其余的请参阅follow-up question

【讨论】:

    猜你喜欢
    • 2014-04-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-15
    相关资源
    最近更新 更多