在 GitHub 上:
Eve 在她的一些流行项目的分支中编写了一些代码,提交为 "Eve" <eve@example.com>
,并向上游发送 pull 请求。
Alice 没有注意到 Eve 的代码包含她所从事的热门项目的后门,认为代码很棒,并 merge 了 pull 请求。
后来,每个人都拥有了。
Bob,Alice 的老板,想要解雇获得代码的人。他做了一个 git log --full
,并看到:
commit deadbeef
Author: Eve <eve@example.com>
Commit: Eve <eve@example.com>
git log --fuller
没有帮助,而且 Eve 没有对存储库的直接推送权限。
Bob 可以挖掘 pull 请求的历史记录,并以这种方式找到它,但这很糟糕。有没有办法在本地解决这个问题?
最佳答案
一般来说,对于 git,您可以使用 git signoff(请参阅 What is the Sign Off feature in Git for?),然后添加一个更新 Hook 以拒绝任何没有 signoff 的推送。但是,GitHub 似乎一般不允许自定义 Hook ,但您可以添加一个 post-receive-hook 来记录所有 future 的推送事件:
http://help.github.com/post-receive-hooks/
如果这是一个已经发生的事件,可能很难(或不可能?)追查到。 您也许可以查看 git reflog 和 ssh 日志,但我不确定 GitHub 是否提供此类信息。如果这确实是安全漏洞,可能至少值得询问他们拥有哪些日志。
关于GIT 和 GitHub - 我如何知道谁将提交提交到存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9795627/