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

Dea*_*xel 8 git author commit github

在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>
Run Code Online (Sandbox Code Playgroud)

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

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

amc*_*abb 3

一般来说,对于 git,您可以使用 git Signoff(请参阅Git 中的 Sign Off 功能是什么?),然后添加一个更新挂钩来拒绝任何没有 Signoff 的推送。然而,GitHub 似乎一般不允许自定义挂钩,但您可以添加一个 post-receive-hook 来记录所有未来的推送事件:

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

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