这可能被标记为重复,我已经尝试了搜索中弹出的类似问题中的所有修复方法,但都不起作用。
基本上,我使用公司的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>