无法为命令行 Git 切换 GitLab 帐户



这可能被标记为重复,我已经尝试了搜索中弹出的类似问题中的所有修复方法,但都不起作用。

基本上,我使用公司的GitLab帐户进行推送,但由于某些原因,我决定改用我的个人帐户。只是我找不到办法。

~/.git-credentials文件不存在,当我尝试打开它时,nano只会给我一个新文件。~/.git-config文件已经包含我的个人帐户的电子邮件和用户名(但没有密码(,我在GitLab上的存储库页面上的提交归因于我的个人账户。然而,Git从未要求提供密码(所以我怀疑它是否真的登录过(。此外,这些贡献并没有显示在我的个人概览页面(彩色日历之类的(上,而是显示在上一个帐户的概览页面上。

我也试过这两种(分别(:

git config --global --unset credential.helper
git credential-cache exit

没有任何变化。仍然让我在不要求凭据的情况下推送,并且提交仍然显示在错误帐户的Overview上。

我也查看了git凭证存储文档(如类似问题中所建议的(,不管它值多少钱,$XDG_CONFIG_HOME都是空的,$HOME/.config/git/也不存在。

还有人建议去GitLab网站上的Access Tokens并删除那里的相应代币,但上面写着";此用户没有活动的访问令牌">

我甚至尝试过旧版卸载和重新安装Git,但它完全没有改变。

我无计可施。你知道这些该死的凭据可能存储在哪里,或者强制注销的方法吗?

编辑:一位同事帮我修复了部分问题。我的两个帐户都通过SSH进行了身份验证,而GitLab只使用我首先连接的一个帐户,那就是公司帐户。

我删除了两个SSH密钥,生成了一个新的密钥对,这次只验证了我的个人帐户。它现在起作用了。我想要一种方法,我可以在帐户之间切换(我必须同时使用两者(,而不必每次都通过SSH重新验证,如果有人还有想法,我愿意接受。

通过SSH克隆repos。这很奇怪,因为即使在那时,我第一次推送时,它也会问我用户名和密码。只是那一次,然后再也不会。

不过这看起来像HTTPS URL。使用存储库中的git remote -v进行检查
您要操作的任何凭据帮助程序设置都只会影响HTTPS URLS。

它是SSH,那么您需要更改这些URLS以使用~/.SSH/config条目

Host <HostEntry>
Hostname xxxx.xx.xx
User ubuntu
IdentityFile ~/.ssh/my_second_key.pem

新URL为:

ssh <HostEntry>

最新更新