让我们假设有两个不同的git用户,U1和U2。让我们进一步假设它们具有相同的配置,例如它们的
git config user.name
是一样的,但他们的公钥是不同的。如果其中一个人提交了提交,有没有办法告诉他们哪个提交了提交?
答案 0 :(得分:1)
这个答案可能无法完全解决您的问题,但我认为它有其优点,从长远来看会避免您所看到的。
通过输入git log
,您将看到列出的每个提交都是这样的:
commit f2a238924e89ca1d4947662928218a06d39068c3
Author: U1 <U1a@yourcompany.com>
Date: Mon Sep 5 17:30:28 2014 -0500
Comment goes here
SomeClass.java | 42 ++++++++++++++++++++++++-----------------
1 file changed, 38 insertion(+), 4 deletions(-)
即使他们可能具有相同的用户名,如果他们的电子邮件不同,那么您仍然可以轻松地将提交分开。因此,如果您的组织强制执行a)所有用户在Git帐户中列出他们的工作电子邮件,并且b)组织为每个人强制执行唯一的电子邮件,那么这个问题将永远不会发生。
答案 1 :(得分:1)
这个答案的灵感来自@Torek的评论。实际上,有可能使用PGP符号并期望使用每个访问回购的开发人员。 PGP签名对于每个用户应该是唯一的,据我所知,它可以非常安全,因为它使用Q&A。如果用户使用hybrid encryption签署他们的提交,那么即使他们的姓名和电子邮件看起来相同,也可以通过所述公钥来识别他们。更多信息public-key cryptography和here。
编辑:
&#34;在实践中,大多数项目似乎只签署附加到发布版本的带注释标签(使用相同的加密签名方法),然后依赖于tag {&gt; commit-&gt;的here结构。 (一切)用它来涵盖发布版本以及导致这一点的所有历史。&#34;
@torek,2016-09-06