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

标签 linux git ubuntu gitlab

这可能被标记为重复,我已经尝试了搜索中 pop 的类似问题中的所有修复,但没有一个有效。
基本上,我是用公司的 GitLab 账户来做推送,但由于某些原因决定切换到我的个人账户。除了我找不到办法做到这一点。~/.git-credentials文件不存在,当我尝试打开它时 nano 只是给了我一个新文件。 ~/.git-config文件已经包含我个人帐户的电子邮件和用户名(但没有密码),并且我在 GitLab 的存储库页面上的提交归因于我的个人帐户。然而,Git 从来没有要求输入密码(所以我怀疑它实际上已经登录了)。此外,贡献没有显示在我的个人概览页面(彩色小日历)上,而是显示在上一个帐户的概览页面上。
我也尝试了这两个(分别):

git config --global --unset credential.helper

git credential-cache exit
没有任何变化。仍然让我在不要求凭据的情况下推送,并且提交仍然显示在错误帐户的概览中。
我检查了 git-credential-store documentation以及(如在类似问题中所建议的),无论它值多少钱,$XDG_CONFIG_HOME为空且 $HOME/.config/git/也不存在。
其他人建议去 GitLab 网站上的 Access Tokens 并删除那里的相应 token ,但它显示“此用户没有有效的访问 token ”。
我什至尝试过卸载并重新安装 Git,但它完全没有改变。
我无计可施。知道这些该死的凭据可能存储在哪里,或者强制注销的方法吗?
编辑:一位同事为我部分修复了它。我的两个帐户都通过 SSH 进行了身份验证,而 GitLab 只使用我首先连接的一个,即公司帐户。
我删除了两个 SSH key ,生成了一个新 key ,这次只验证了我的个人帐户。它现在正在工作。我想要一种可以在帐户之间切换的方法(我必须同时使用两者),而不必每次都通过 SSH 重新进行身份验证,如果有人仍然有想法,我愿意接受。

最佳答案

The repos are cloned via SSH. Which is strange, because even then, the first time I pushed, it asked me for username and password. Only that time and then never again.


不过,这看起来像 HTTPS URL。使用 git remote -v 进行检查在存储库内。
您将操纵的任何凭据帮助程序设置只会影响 HTTPS URL。
它是 SSH,那么您需要更改这些 URL 以使用 ~/.ssh/config 条目
Host <HostEntry>
   Hostname xxxx.xx.xx
   User ubuntu
   IdentityFile ~/.ssh/my_second_key.pem
新 URL 为:
ssh <HostEntry>

关于linux - 无法为命令行 Git 切换 GitLab 帐户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63625834/

相关文章:

linux - 无法读取文件 Datadog 代理

c++ - 我使用 gdb 跟踪 'catch' 和 'syscall' 失败,它报告找不到 'brk'?

git - 如何抑制 `git rebase --continue` 的编辑器?

linux - 为什么我已经设置了它,但仍然说没有 GOPATH?

git - 如何将 Git 添加到 MSBuild 脚本?

git: key 不包含部分

c++ - 如何在 Ubuntu 中使用 C++ 打开终端窗口?

linux - 在 bash shell 中用零填充添加两个数字

python - 从 python 中的行/Robust XML解析器中删除垃圾字符

linux - 仅当文件未被其他进程使用时才在 Linux 中移动文件