git push在post-receive hook运行时使用什么标识?

时间:2015-09-17 22:39:24

标签: python git bash github git-post-receive

我在开发机器上有git(git1,如下)。

我将更改推送到git服务器(mygitserv,下方)。

git服务器(mygitserv)使用后接收挂钩(~/myrepo/.git/hooks/post-receive)将更改转发到Github(github,下方)。

git1 
    >==<git push>==> 
                     mygitserv 
                               >==<post-receive runs git push>==> 
                                                                  github

[myuser@gitserv:~] cat ~/myrepo/.git/hooks/post-receive
#!/bin/sh
read oldrev newrev ref
echo "$oldrev"
echo "$newrev"
echo "$ref"
git push origin "$ref"

当我推送到git1时,我在mygitserv上获得的输出:

remote: 9679d6ced07eafbbbd8595b1b4af887f2d8f3f52
remote: 1cee4034f0afcc3fd3babaa2cbcdd4aa6e0e3078
remote: refs/heads/mybranch
remote: Permission denied (publickey).
remote: fatal: The remote end hung up unexpectedly
To ssh://vagrant@localhost:19999/~/myrepo
   9679d6c..1cee403  mybranch -> mybranch

简单,对吧?

当我从Permission denied (publickey)开发机器推出分支时,我从gitserv获得了可怕的git1

无论如何,我怀疑我的代理转发正在以某种方式弄乱这一点。

[myuser@gitserv:~]$ git remote -v 
origin  git@github.com:v6/myrepo.git (fetch)
origin  git@github.com:v6/myrepo.git (push)

这就是我询问git用户如何工作的原因。

我可以在Python 2.6和Python 3.5中发布上述代码的等价物,我已经尝试了这两种代码。

post-receivegitserv使用哪个身份来运行自己的git push

0 个答案:

没有答案