Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.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
Git集成应用程序如何知道我可以推送到主分支?_Git_Github_Gitlab - Fatal编程技术网

Git集成应用程序如何知道我可以推送到主分支?

Git集成应用程序如何知道我可以推送到主分支?,git,github,gitlab,Git,Github,Gitlab,我的困境: 我使用visualstudio和括号。不过,两者都可以将Git集成到其中,比如说VisualStudio与GitLab上的存储库对话,而括号则与Github上的存储库对话 每个应用程序如何知道我可以推送到每个存储库的主分支,即使每个网站的帐户使用不同的密码 我不知道该怎么说,但另一个切线: 在VisualStudio中,我可以覆盖全局用户名和电子邮件。这是为我使用不同的电子邮件设置存储库时使用的吗?如果有人收到了我的电子邮件,他们就不能直接推送到我存储库中的主分支吗 Git怎么知道?

我的困境:

我使用visualstudio和括号。不过,两者都可以将Git集成到其中,比如说VisualStudio与GitLab上的存储库对话,而括号则与Github上的存储库对话

每个应用程序如何知道我可以推送到每个存储库的主分支,即使每个网站的帐户使用不同的密码

我不知道该怎么说,但另一个切线:

在VisualStudio中,我可以覆盖全局用户名和电子邮件。这是为我使用不同的电子邮件设置存储库时使用的吗?如果有人收到了我的电子邮件,他们就不能直接推送到我存储库中的主分支吗


Git怎么知道?我只需要一个很好的解释。

登录GUI Gitlab或GitHub时用于验证用户的凭据不一定与计算机上的Git客户端程序在从相应的远程存储库推/拉时用于验证的凭据相同

我将假设这里正在使用SSH。不是因为你,而是因为你使用的工具。如果您没有在每次执行与远程存储库通信的Git操作时输入密码,并且没有在IDE中输入密码,那么您使用的肯定是SSH

如果您正在推/拉SSH协议,这是非常常见的,那么您的计算机上的Git客户端正在使用您机器上的密钥对,IDE使用该密钥对通过Gitlab和GitHub进行身份验证。加密密钥对与您的电子邮件或密码完全无关。因为其他一些用户无法访问您的私钥,甚至可能无法访问您的公钥,所以他们将无法通过SSH进行身份验证


如果我能为您澄清任何事情,请告诉我

好吧,太棒了,这更有意义,但我没有使用SSH,我也不相信我的软件是。我只是简单地启动了程序并开始使用Git,然后我就可以推送到主控端并进行同步了。这是因为软件在我的机器上获得了全局git用户,并且发现它与托管存储库的用户匹配吗?我确实是通过Git客户端输入密码的,所以我认为这“设置”了我的机器作为该用户。在这方面,如果我为GitHub设置它,那么它如何也适用于GitLab?在您的计算机上缓存您的凭据取决于某些配置以及您使用的操作系统。请参阅:我之所以提到它,是因为我认为可能是通过https而不是SSH与服务器进行对话。要仔细检查您是否正在使用SSH,请登录您的Github和Gitlab GUI,转到您的帐户设置并查看您的密钥。将本地计算机上的密钥与本地计算机上的密钥进行比较。如果没有任何内容或没有匹配项,则必须缓存您的凭据,否则您正在使用SSH!如果您在Mac OSX或Linux上,您可以在以下位置找到公钥,它将作为授权密钥存储在远程Git服务器上
~/.ssh/id\u rsa.pub
。文件名
id\u rsa.pub
是rsa公钥最常用/默认的名称。@asblargh我已经充分回答了您的问题吗?如果是,请单击问题左侧的复选标记,将其标记为接受答案。如果没有,我还可以帮助澄清什么?