Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么github允许未识别的作者提交_Git_Github_Visual Studio 2015_Git Bash_Team Explorer - Fatal编程技术网

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

为什么github允许未识别的作者提交,git,github,visual-studio-2015,git-bash,team-explorer,Git,Github,Visual Studio 2015,Git Bash,Team Explorer,在我自己的GitHub存储库中,我注意到有来自未识别作者的提交 我已经开始调查,并意识到当我通过Visual Studio 2015-团队资源管理器在远程存储库上推送任何更改时,即使我更改了我的全局.gitconfig设置,并在其中设置了无效用户名和无效电子邮件地址,也会成功推送更改-当我获得无法识别的作者时就是这种情况 如果我试图通过gitbash命令提示符直接推送更改,并输入无效的用户名或密码,我将得到:invalid username或password——这很明显,很正常 我得到:请求的U

在我自己的GitHub存储库中,我注意到有来自
未识别作者的提交

我已经开始调查,并意识到当我通过
Visual Studio 2015-团队资源管理器
在远程存储库上推送任何更改时,即使我更改了我的全局
.gitconfig
设置,并在其中设置了无效用户名和无效电子邮件地址,也会成功推送更改-当我获得
无法识别的作者时就是这种情况

如果我试图通过
gitbash
命令提示符直接推送更改,并输入无效的用户名或密码,我将得到:
invalid username或password
——这很明显,很正常

我得到:
请求的URL返回错误:403
如果我输入了有效的user/pass-但是,这是正常的,因为我没有将此用户添加为我的
合作者。
如果我将此用户添加为我的合作者,我可以成功推送

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


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

基本上,git是分散的。存储库的每个副本都是相等的。提交可以从任何地方到任何地方。从远程X提取提交并将其推送到远程Y是完全正常的,当它们出现在远程Y上时,原始提交者的名字仍然会出现在它们上面,即使此人可能在远程Y上没有帐户

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

当您从命令行进行身份验证时,您没有输入用户名和密码来标识自己是正在推送的提交的作者。您只是将自己标识为有权将这些提交放入存储库的人。当您从IDE执行此操作时,可能是在使用您在某个时候输入的github凭据