Git推送和提交者

时间:2017-12-04 14:45:08

标签: git security gitlab

当我在提交中推送到GIT(Gitlab)repo时,我发现提交是由用户在' user.email'中设置的。和' user.name'。

为什么会这样?我认为有关用户的信息应该从Gitlab配置文件中获取。 现在可以欺骗我们的身份。

3 个答案:

答案 0 :(得分:5)

使用外部身份来源重写作者信息的几个原因对Git来说并不实用:

  1. Git旨在可以在分布式环境中使用,根本没有中央服务器,您可以直接从其他贡献者那里获取'克隆的存储库。在这种情况下,必要允许您传递您未创建的提交,并保留作者信息。重写此信息可能会导致数据丢失,开发人员将提交的内容提交给您,然后您尝试将其推送到Gitlab。你没有写出来; Gitlab不应该假设你做到了。 Git模型要求你相信你的同伴不要骗你谁写了什么。
  2. 更改作者/提交者信息会更改提交ID ,这会导致大量不需要的分支,并且会严重混淆尝试针对此存储库进行开发的任何人,因为他们的提交不断被重写服务器随时推送。

答案 1 :(得分:4)

cdhowie(尤其是第二点)的答案解决了为什么不做不同的事情。我想补充说明提交者和作者信息是由git创建的 - 而不是通过gitlab或任何其他托管环境 - 当提交最初是在某人的本地存储库中创建时。因此gitlab验证的信息将无法使用,除非开发人员碰巧将其本地配置与其同步,如果您担心某人“欺骗”身份,那么显然您不相信开发人员会这样做。

但这导致了我决定添加答案的真正原因:我没有看到任何人所说的是你对身份的关注。提交者和作者姓名和电子邮件不是,并且从未被设计为将工作链接到其创建者的安全方式。如果您需要某人以安全的方式担保提交,那么您需要使用签名提交。

答案 2 :(得分:1)

GitHub使用提交标头中的电子邮件地址将提交链接到GitHub用户。如果您的提交被链接到其他用户,或者根本没有链接到用户,您可能需要更改本地Git配置设置,为您的帐户电子邮件设置添加电子邮件地址,或同时执行这两项操作。 参阅 - > https://help.github.com/articles/why-are-my-commits-linked-to-the-wrong-user/