.gitconfig 如何保护?

3
如果您看到.gitconfig文件,它包含用户的姓名和电子邮件地址。我希望保护它不被用户访问,因为他们可以随时掩盖自己的身份,而这个文件又可以被用户配置。
例如,在我的公司目录中,我的名字如下:Gerald, Anthony(姓,名)。
人们在这里犯的错误是,一些用户将他们的名字指定为以下内容:
  • Gerald
  • G.Anthony
  • GA
  • Anthony
  • AGeral
  • 等等。
这会造成混淆,因为它不包含真实的信息。
请告诉我你们如何管理用户身份。

1
你是说公司里的其他人故意伪造身份吗?你确定还想继续在那里工作吗? - Felix Kling
4个回答

4

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

如果您真的想确保谁检查了某些内容,您应该使用签名标签(由某个公司中央CA签名的公钥)。


3

如果你没有重新思考整个分布式模型,仅使用Git无法真正强制执行此操作。但如果您的Git repo服务器周围有一些封装,例如gitolite,则可以使用一些脚本来检查用户名:

例如:update.email-check

Gitolite 特定脚本用于检查每个提交推送的“作者电子邮件”字段,并在此电子邮件不匹配用户推送所期望的电子邮件时禁止其提交。

该脚本中包含的“哲学笔记”相当直白但也很到位;)

哲学笔记:

这样做会破坏“DVCS”中的“D”,就推送而言,迫使所有开发人员都按照集中式模型工作。
它防止修改他人的提交和推送(包括重新设置基础、挑选等),现在所有这些都是不可能的。
它还使得两个开发人员之间的任何离线协作都无用,因为他们都不能将结果推送到服务器上。
PHB应该注意,验证提交者ID并不等同于审查代码并对其进行QA/测试。如果你没有审查/QA代码,那么它可能是毫无价值的。相反,如果你确实要审查代码并运行QA/测试,那么你真的不需要验证作者的电子邮件!
在DVCS中,如果你推送了一系列提交,你已经——在某种意义上——签署了它们。最正式的签署方式是添加并推送一个gpg签名标签,尽管大多数人并不会走得那么远。
Gitolite的日志文件被设计成在某种程度上保留这种责任感;参见contrib/adc/who-pushed,其中有一个由管理员定义的命令,可以快速轻松地告诉你是谁推送了特定的提交。
无论如何,这个脚本的唯一目的是:
  • 迎合那些仍然没有理解*D*VCS的人
  • 或者在某些愚蠢的PHB清单中打勾

0

0

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接