我的困境:
我使用Visual Studio和Brackets。两者都可以将Git集成到其中,但是,让我们说Visual Studio与GitLab上的存储库进行对话,并且Brackets与Github上的存储库进行对话。
每个应用程序如何知道我可以推送到每个存储库的主分支,即使每个网站的帐户都是使用不同的密码制作的?
我不知道怎么说这个,但另一个切线:
在Visual Studio中,我可以覆盖全局用户名和电子邮件。当我使用不同的电子邮件设置存储库时,这是否适用?如果有人收到我的电子邮件,他们不能只是推送到我的存储库中的主分支吗?
Git如何知道?我只需要一个很好的解释。
答案 0 :(得分:1)
用于在登录GUI时对用户进行身份验证的凭据Gitlab或GitHub不一定与计算机上的Git客户端程序在从相应的远程存储库推/拉时进行身份验证时使用的凭据相同。
我将假设在这里使用SSH。不是你公开的,而是你正在使用的工具。如果您没有在每次执行与远程存储库通信的Git操作时输入密码而您没有在IDE中输入密码,那么 使用的情况肯定是这样的SSH。
如果您正在推送/拉动SSH协议(这很常见),那么计算机的Git客户端(IDE使用的)将使用计算机上的密钥对来对Gitlab和GitHub进行身份验证。加密密钥对与您的电子邮件或密码完全无关。由于其他一些用户无权访问您的私钥,甚至可能无法访问您的公钥,因此他们无法通过SSH进行身份验证。
如果我能为您澄清任何事情,请告诉我!