【问题标题】:GIT and GitHub - How can I tell who landed a commit into a repository?GIT 和 GitHub - 我如何知道谁将提交提交到存储库?
【发布时间】:2012-04-05 10:35:06
【问题描述】:

在 GitHub 上:

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

Alice 没有注意到 Eve 的代码包含她从事的热门项目的后门,认为代码很棒,并合并了拉取请求。

后来,每个人都拥有了。

Alice 的老板 Bob 想解雇任何获得代码的人。他做了一个git log --full,然后看到:

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

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

Bob 可以挖掘拉取请求历史记录,并以这种方式找到它,但这很糟糕。有没有办法在本地解决这个问题?

【问题讨论】:

    标签: git github commit author


    【解决方案1】:

    通常使用 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 是否提供此类信息。如果这确实是安全漏洞,那么至少值得询问他们拥有哪些日志。

    【讨论】:

    • 感谢指向 Git Signoff 的指针,以前从未见过,这可能会很好。
    • 在四处寻找之后,据我所知,这几乎是不可能的。我得到的另一个建议是,我们根本不应该使用 github 上的自动合并按钮——相反,进行本地结帐和合并舞蹈,以明确地将提交者分配给所有内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-29
    • 1970-01-01
    • 1970-01-01
    • 2019-06-18
    • 2012-05-09
    • 1970-01-01
    • 2020-08-18
    相关资源
    最近更新 更多