微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何确保远程git用户在接收后挂钩中执行某些命令?

如何解决如何确保远程git用户在接收后挂钩中执行某些命令?

希望我不会屠杀我的设置说明。我目前正在呼叫git push到远程计算机上的裸仓库中,以触发如下所示的后接收挂钩:

cd /path/to/working/tree
git pull
gatsby build && gh-pages -d public/

一切正常,直到部署步骤gh-pages通过GitHub上的另一个存储库将更改推送到GitHub Pages为止。通过本地计算机上的remote: Permission denied (publickey)触发后接收钩子时,我得到一个git push,但是直接在远程计算机上运行时,它会成功。

尽管我的gh-pages配置指定了正确的远程用户,但是我猜想从本地计算机上触发钩子时,其他用户正在执行git remote

staging [remote_user]@[remote_ip]:/path/to/bare/repo.git (fetch)
staging [remote_user]@[remote_ip]:/path/to/bare/repo.git (push)

任何帮助将不胜感激!

解决方法

我猜测当从本地计算机上触发钩子时,gh-pages的执行是由其他用户执行的

您可以通过修改后接收挂钩并将其添加到其中来进行检查:

id -a
export GIT_SSH_COMMAND='ssh -Tv'

这样,您将确切看到该挂钩上考虑了什么ID和哪些SSH密钥。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。