如何在github中识别提交

时间:2013-07-24 11:58:12

标签: git github

我和我的朋友正在同一个项目中共享同一个github存储库。为了揭示我们的身份,我的朋友建议&通过在他当地的PC上发布命令来掩盖他与我的身份相匹配。

$ git config --global user.name "XYZ"
$ git config --global user.email "xyz@example.com"

在我为该应用程序获取git日志的那一天结束时,我可以看到我们两个人提交的所有提交,但所有提交都具有相同的用户名和&电子邮件地址。

如何识别我的朋友提交的提交?

3 个答案:

答案 0 :(得分:0)

如果您同时使用相同的作者信息,则无法知道提交的作者。它应该是每个用户所独有的,就是它的用途。

答案 1 :(得分:0)

由于git的分布式特性,服务器(无论是GitHub还是其他东西)必须接受它收到的提交消息中显示的身份。如果您希望能够对这些身份进行身份验证,则需要使用GPG之类的方式对提交进行加密签名。 This page讨论了如何做到这一点。假设您已经配置了GPG,您只需要将-S添加到您的提交命令行:

git commit -S -m "this is a test"

您可以使用“git log --show-signature”验证提交标识,这样可以得到如下输出:

commit dadcd364efe5e2751b9ee4ef9a3e9b1b4e2ba4f9
gpg: Signature made Wed Jul 24 08:14:44 2013 EDT
gpg:                using RSA key 0x042DF6CF74E4B84C
gpg: Good signature from "Lars Kellogg-Stedman <lars@oddbit.com>" [ultimate]
Author: Lars Kellogg-Stedman <lars@oddbit.com>
Date:   Wed Jul 24 08:14:38 2013 -0400

    removed things

...虽然这需要您正确管理您的GPG信任网以便相信签名。

答案 2 :(得分:0)

请注意Git 2.10(2016年第3季度)中的git log --show-signature更改

commit 2376d31
merged tag 'v2.9.3'
gpg: Signature made Fri 12 Aug 2016 09:17:59 AM PDT using RSA key ID 96AFE6CB <=====
gpg: Good signature from "Junio C Hamano <gitster@pobox.com>"
gpg:                 aka "Junio C Hamano <jch@google.com>"
gpg:                 aka "Junio C Hamano <junio@pobox.com>"
Merge: 2807cd7 e0c1cea
Author: Junio C Hamano <gitster@pobox.com>
Date:   Fri Aug 12 10:02:18 2016 -0700

commit 2376d31
merged tag 'v2.9.3'
gpg: Signature made Fri 12 Aug 2016 09:17:59 AM PDT
gpg:                using RSA key B0B5E88696AFE6CB           <=======================
gpg: Good signature from "Junio C Hamano <gitster@pobox.com>"
gpg:                 aka "Junio C Hamano <jch@google.com>"
gpg:                 aka "Junio C Hamano <junio@pobox.com>"
Merge: 2807cd7 e0c1cea
Author: Junio C Hamano <gitster@pobox.com>
Date:   Fri Aug 12 10:02:18 2016 -0700

commit b624a3eLinus Torvalds (torvalds)(2016年8月16日) (由Junio C Hamano -- gitster --合并于commit 83d9eb0,2016年8月19日)

  

gpg-interface:更喜欢&#34; long&#34;验证pgp签名时的密钥格式输出

     

是的,gpg2默认使用了长格式,但大多数发行版似乎仍然有&#34; gpg&#34;由于兼容性原因,是较旧的1.x版本。旧版本的gpg只显示32位短ID,这是非常不安全的。

     

这对验证本身并不重要:如果是   验证通过,pgp签名是好的   但是如果您还没有真正拥有密钥,并且想要获取它,或者您想要确切地检查哪个密钥用于验证并想要检查它,我们应该更精确地指定密钥< /强>

     

实际上,我们应该优先指定整个密钥指纹,但是   gpg实际上并不支持这一点。这真的很难过。

     

显示&#34; long&#34;格式改进的东西至少显示64位   指纹。即使它不完美,情况会好很多。