GIT 和 GitHub - 我如何知道谁将提交提交到存储库?

标签 git github commit author

在 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/

相关文章:

git - Mercurial 和 Git 自定义 SSH key 位置

r - 安装 ggbiplot 时出错 - 未找到对象 'digest_impl'

c# - 如何使用 C# 中的基本身份验证在 github 上创建要点

java - BAPI_TRANSACTION_COMMIT 是否提交自上次提交以来的更改

Git 子模块 pull 覆盖/放弃任何本地更改

git - 为单个站点上的 magento 模块开发创建每个模块的 git repo 环境

git - “ssh: Could not resolve hostname github.com: Try again”-内部Docker容器

Github文件夹结构变化

perl - 将提交评论复制到 Windows 剪贴板

git - 使用 gitlab api 更新并提交文件