为什么github允许无法识别的作者提交

问题描述:

在我自己的GitHub存储库上,我注意到有来自unrecognized author的提交。为什么github允许无法识别的作者提交

我已经开始调查,我意识到,当我通过Visual Studio 2015 - Team Explorer推在我的远程仓库的任何变化,改变被成功推入,即使我改变我的全球.gitconfig设置,并设置有无效的用户名以及无效的电子邮件地址 - 当我得到unrecognized author时就是这种情况。

如果我试图通过git bash命令提示符直接推送更改,并输入无效的用户名或密码,我会得到:invalid username or password - 这是显而易见的,正常的。

我得到:The requested URL returned error: 403如果我输入有效的用户/密码 - 但是,这是正常的,因为我没有将此用户添加为我的Collaborator。 如果我将此用户添加为我的协作者,则可以成功推送。

那么,为什么会发生这种情况呢?

为什么GitHub允许我用无效的用户/电子邮件通过VS 2015推送更改?

基本上,git是分散的。每个版本库都相同。提交可以从任何地方到任何地方。从远程X提交提交并将它们推送到远程Y是非常正常的,当它们出现在远程Y上时,即使该远程Y上没有帐户,原始提交者的名字仍将保留在其上。

因此,远程Y(本例中为github)不能因为它包含一些无法识别的提交者名称而拒绝推送。

当您通过命令行进行身份验证时,您并未输入用户名和密码来标识自己是推送提交的作者。您只是将自己标识为有权将这些提交放入存储库的人员。据推测,当你从IDE中完成时,它使用你在某个时候输入的github凭证。