Git初学者警报! 我有一个基本问题,为什么GIT允许用户更改用户名作为配置选项
git config --global user.name trojan
这个选项是否在提交者的大门上冒充并在历史/日志中造成混淆?为什么不是从用于连接GIT的凭据中获取用户名这么简单?
答案 0 :(得分:3)
git bundle
或其中任何一种。author
字段。这些必须在创建提交时分配,一旦分配,就永远不能更改:到"更改"提交的任何部分,您将其复制到新的提交对象,该对象获取新的提交哈希,如果它的 bit-for-bit 相同,则只与原始提交相同。换句话说,我可以通过逐位复制提交来模拟您,包括所有源,日志消息,时间戳等。但要做到这一点,我必须获取你的提交,之后我的副本只是你的提交。在这种情况下,它是你的提交,而应该在你的名字上有你的名字!committer
) - 但这会将所有权力交给网站。这与设计理念相悖。如果您希望建立某个特定提交的真实性,例如,您获得ID为git@github.com
或某些此类提交的提交,并声称由Linus Torvalds创作或比尔盖茨或巴拉克奥巴马或其他什么-Git提供了使用一些外部认证服务的能力,例如PGP,它使用数字签名及其所有复杂性(包括Chain of Trust和撤销)。我们应该说,这一特定领域正在取得一些进展,some of which affect Git somewhat。
(通过GPG 的PGP身份验证内置于Git中,但由外部程序完成。这里特别明显的缺点是签名标记或提交仅验证一个标记或提交自身。进一步的身份验证取决于关于Merkle tree的安全性,这对于Git使用SHA-1而言并非完全受到了损害,但却越来越可疑:请参阅链接的StackOverflow问题。)