2013-04-24 52 views
2

设置:Git提交不使用转发的ssh代理?

我们有几个用户可以访问Github回购。 这些用户都具有在各种服务器上的部署权限。 服务器无法访问Github repo - 它们使用ssh-agent转发来获取用户的凭据。 从Github传输数据到服务器时,一切都按预期工作。

对于问责制,部署将一些数据提交给回购。这些都是脚本化的,并且运行在服务器端,无需用户干预。

问题:

Git修订设定的提交者的姓名和电子邮件到任何设置服务器(默认为服务器的用户名,如果没有明确设定)上。有没有办法强制Git(作为发送者)或Github(作为接收者)将提交与转发的用户凭证相关联?

+0

试试'ssh -T git @ github.com'它会告诉你哪个github用户被使用。尽管我无法使用正确的用户来转发自己。 – 2013-08-15 20:57:58

回答

0

你可以尝试,并有一个钩子在服务器上,触发接收时(如,例如,该GitHubHook: a GitHub Post-Receive Deployment Hook),这将:

  • 修改本地.git/config文件
  • 添加user.name和user.email在上述配置文件

这将下一个推从GitHub到服务器,否则,错误的credentia之前设定的提交完成的展开时我会用。

如果前面的点是一个问题,那么你就可以提高通过:

  • 存储在别处这些凭据,在部署的顺序,
  • ,并确保部署的提交与一个git commit --author='AUserName <[email protected]>完成,根据记录的顺序,从单独的文件中提取名称和电子邮件。

在最后一种情况下,没有必要修改本地配置:你用正确的参数构建git commit命令,而不是依赖于本地配置文件的内容。