【问题标题】:gitosis-admin git push failed, exec hooks/post-updategitosis-admin git push 失败,执行挂钩/更新后
【发布时间】:2010-03-12 10:33:44
【问题描述】:

我正在关注this tutorial

这一步之后:

$ git commit -a -m "Allow jdoe write access to free_monkey"
$ git push

我总是失败,出现这个错误:

fatal: exec hooks/post-update failed.

这是来自我的/home/git/repositories/gitosis-admin/hooks/post-update

-rwxr-xr-x 1 git git   83 Mar 10 11:49 post-update

所以我从服务器手动更改 gitosis.conf 以添加新的存储库,并且 repos 可以正常工作。

我已经用谷歌搜索了可能导致它的原因,我想以适当的方式管理 gitosis。

请帮忙

问候, 修订版

【问题讨论】:

    标签: git gitosis


    【解决方案1】:

    可以执行您的更新后挂钩,但它无法更新 refs/heads/refs/remotes/ 中的指针(这有助于使用“哑”协议进行克隆,即通过 http)

    检查与您的 gitosis 回购相关的权利,尤其是在 .git/refs

    还要检查<git>/bin/git-update-server-info 是否可执行
    (您可以尝试 -- 作为测试 -- 用指向git-update-server-info 的链接替换您的update-hook,例如this case)。
    或者,作为described here,检查您是否需要替换您的gitosis/templates/admin/hooks/post-update

    git-update-server-info
    

    git update-server-info
    

    【讨论】:

    • 这很奇怪,我将 git-update-server-info 更改为 git update-server-info,但我在远程使用 ssh。每次 git push for gitosis-admin 时仍然会出现错误消息。但是我通过删除我的 gitosis-admin 本地 repo 并从 master 重新克隆进行检查,我的更改已写入 gitosis.conf 甚至我添加的公钥也存在,这是否意味着 git push 过程成功,尽管更新后挂钩失败执行?
    • 更新后挂钩发生在基本推送成功之后(因此是“更新后”:-))。 没有发生的是 gitosis 将用户/存储库等添加到 .ssh/authorized_keys 等的魔法,这就是 post-update 挂钩的作用。
    • 所以它还没有解决,因为我更喜欢通过 gitosis 以正确的方式管理 git。为了使错误消失,还应该检查什么?
    • 我尝试使用 git 用户手动执行钩子/更新后,错误消息缺少 GIT_DIR 值,所以我手动设置和导出并再次执行更新后没有错误消息,但是当我尝试 git从客户端推送错误消息仍然出现。
    • @v14nt0:你是如何设置GIT_DIR的?你出口了吗?还是只是设置?在后一种情况下,该变量仅针对您当前的 shell 设置,不一定针对由 post-update 钩子触发的 shell。
    猜你喜欢
    • 2011-08-25
    • 2012-01-24
    • 2012-06-10
    • 1970-01-01
    • 1970-01-01
    • 2012-03-09
    • 1970-01-01
    • 2010-12-20
    • 2017-05-03
    相关资源
    最近更新 更多