我和我的朋友正在同一个项目中共享同一个github存储库。为了揭示我们的身份,我的朋友建议&通过在他当地的PC上发布命令来掩盖他与我的身份相匹配。
$ git config --global user.name "XYZ"
$ git config --global user.email "xyz@example.com"
在我为该应用程序获取git日志的那一天结束时,我可以看到我们两个人提交的所有提交,但所有提交都具有相同的用户名和&电子邮件地址。
如何识别我的朋友提交的提交?
答案 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 b624a3e见Linus 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位 指纹。即使它不完美,情况会好很多。