GIT和GitHub - 我怎样才能告诉谁将提交登陆到存储库?

时间:2012-03-20 21:57:07

标签: git github commit author

在GitHub上:

Eve在她的某个热门项目的fork中写了一些代码,提交为"Eve" <eve@example.com>,并向上游发送一个pull请求。

Alice没有注意到Eve的代码包含她所处理的热门项目的后门,认为代码很棒,并且合并了pull请求。

后来,每个人都被拥有。

爱丽丝的老板鲍勃想解雇那些登陆代码的人。他做了一个git log --full,看到了:

commit deadbeef
Author: Eve <eve@example.com>
Commit: Eve <eve@example.com>

git log --fuller没有帮助,Eve没有对存储库的直接推送权。

鲍勃可以挖掘拉取请求历史记录,然后就这样找到,但这很糟糕。有没有办法在当地解决这个问题?

1 个答案:

答案 0 :(得分:3)

通常使用git,您可以使用git signoff(请参阅What is the Sign Off feature in Git for?)然后添加更新挂钩以拒绝任何没有签收的推送。但是,GitHub似乎一般不允许自定义挂钩,但您可以添加一个post-receive-hook来记录所有未来的推送事件:

http://help.github.com/post-receive-hooks/

如果这是一个已经发生的事件,可能很难(或不可能?)追踪。 您可以查看git reflog和ssh日志,但我不确定GitHub是否提供此类信息。如果它确实是一个安全漏洞,那么至少值得问他们有什么日志。