为什么我可以在不登录的情况下推送到不同 user.name 和 user.email 下的远程?

Why can I push to a remote under a different user.name and user.email without logging in?

我首先在 Windows 的凭据管理器中删除了所有与 git 相关的凭据,将我的 user.name 和 user.email 更改为 repo 中的另一个用户,然后推送到一个遥控器。 Git 然后让我通过浏览器登录。我单击了登录按钮,出现的浏览器选项卡告诉我身份验证立即成功,而没有要求我输入新用户的密码。当我检查 Github 上的提交历史记录时,它显示提交是由新用户(我将 user.name 更改为的用户)进行的,但该用户从未登录过我的计算机.这怎么可能?跟ssh有关系吗?但我只使用 https 进行推拉。为什么新用户可以推送到我的仓库?我没有加他为我的合作者

user.nameuser.email 与身份验证完全无关。这些只是写入本地提交的字段。任何人都可以为这些字段编写任何内容,任何人都可以推送任何人声明的提交。

您可以将这些字段想象成电​​子邮件签名:您在创建 email/commit 时编写它,人们可以阅读它,但它只是 email/commit 的一部分,任何人都可以在其中写入任何内容emails/commits 他们 send/make.