3

如果您看到.gitconfig文件,它包含用户名和电子邮件地址。我希望保护它不受用户的影响,因为他们总是可以掩盖他们的身份,因为它仍然可以由用户配置。

例如,在我的公司目录中,我的名字如下 Gerald, Anthony(姓氏,拳头名)。

人们在这里犯了什么错误,一些用户指定他们的名字如下

  • 杰拉德
  • 安东尼
  • 遗传算法
  • 安东尼
  • 杰拉尔
  • 等等

这会造成混淆,因为它不包含真实信息。

让我知道你们如何管理用户身份

4

4 回答 4

4

这是一个社会问题,应该通过社会手段来解决。

如果您真的想确定谁签入了某些东西,您应该使用签名标签(使用由某个公司中心 CA 签名的公钥)。

于 2011-02-16T10:13:07.353 回答
3

你不能单独使用 Git 来强制执行(除非你正在重新考虑所有分布式模型),但如果你在 Git 存储库服务器周围有一些封装,比如 gitolite,你可以使用一些脚本来检查用户名:

例如:update.email-check

Gitolite特定脚本用于检查每个提交的提交的“作者电子邮件”字段,如果此电子邮件与用户推送的预期电子邮件不匹配,则不允许。

该脚本中包含的“哲学笔记”非常生硬,但也很重要;)

哲学笔记:

这样做会破坏“ DVCS ”中的“ D ” ,就推送而言,迫使所有开发人员使用集中式模型。 它可以防止修改其他人的提交和推送(这包括变基、挑选等,现在这些都是不可能的)。 这也使得两个开发人员之间的任何离线协作都毫无用处,因为他们都无法将结果推送到服务器。

PHB 应该注意,验证提交者 ID 与查看代码并在其上运行 QA/测试不同。如果您不审查/ QA-ing 代码,它可能无论如何都毫无价值。相反,如果您查看代码并运行 QA/测试,那么您真的不需要验证作者的电子邮件!

在 DVCS 中,如果您推送了一系列提交,那么您在某种意义上已经签署了它们。“签署”系列的最正式方式是附加并推送一个 gpg 签名的标签,尽管大多数人并没有走那么远。
不过,Gitolite 的日志文件旨在在一定程度上保留这种责任。请参阅 contrib/adc/who-pushed 以获取管理员定义的命令,该命令可以快速轻松地告诉您谁推送了特定的提交。

无论如何,关键是这个脚本的唯一目的是

  • 迎合还没摸过*D*VCS的人
  • 或者在一些愚蠢的 PHB 清单中打勾
于 2011-02-16T09:59:07.957 回答
0

保护 .gitconfig 并不能解决问题,因为用户可以通过设置 GIT_AUTHOR_NAME 和 GIT_AUTHOR_EMAIL 来覆盖这些设置。

于 2011-02-16T11:59:29.650 回答
0

可以将签名标签添加到提交以提供某种验证。

于 2011-02-16T11:33:58.713 回答