【问题标题】:git impossible to remove old usergit 无法删除旧用户
【发布时间】:2017-10-04 17:51:32
【问题描述】:

有一天,另一个开发者在我的电脑上用他的用户名提交了一些东西。 而这时候就变成了一种诅咒。

我无法切换用户。

我什么都试过了:

git config user.name "new name"

git fetch -p

所有可用选项都没有成功

重启电脑,不成功
删除所有 ssh 密钥,没有成功
卸载并重新安装git,没有成功。

在所有这些操作之后,命令 git push 对我说: Permission to myRepos denied to olduser.

带有--global/--local/--system 选项的git config user.name 是:me

我是否忘记了什么(清除缓存或其他)?

编辑

我在我的电脑上看到了这个老用户的其他存储库。 (他在我的电脑上工作了 1 周)。也许有一些冲突?

【问题讨论】:

标签: git


【解决方案1】:

之前提交的所有信息都保持不变。更改配置只会影响新的提交。

【讨论】:

  • 虽然这完全正确,但不幸的是完全不相关,因此不是问题的答案,因为问题中的错误消息来自git push,因此是关于远程存储库的身份验证,而不是关于存储库历史记录。
【解决方案2】:

首先要知道的是“你使用什么协议”:

cd /patH/to/my/local/repo
git remote -v

如果您看到一个以 https 开头的 url,则无需担心 ssh 密钥:它们用于 https url。

在 Mac 上使用 osxkeychain

这意味着您的 Git 可以将其 credential helper 设置为 OSX Keycchain

如果是这种情况(检查git config credential.helper 的输出),请删除与您的远程回购网址匹配的条目(例如,github.com)

$ git credential-osxkeychain erase
host=github.com
protocol=https
[Press Return]

然后再次尝试推送:如果弹出窗口正在请求您的凭据,请输入您的 GitHub 帐户及其密码:这应该足以缓存您的凭据。
随后的推送不会要求您提供任何凭据(但会重复使用您刚刚缓存的凭据),并且会再次使用 您的 帐户完成。

【讨论】:

  • 哇,这是个好答案!是工作。非常感谢解决我的“诅咒”
【解决方案3】:

我刚遇到这个问题。在检查存储库、环境变量、git 配置后,所有这些都没有引用旧用户名,结果证明是因为我有一个以“http:”而不是“https:”开头的旧远程 url。我不确定它是从哪里获得旧用户名的。

一旦我将远程 url 更改为以“https:”开头,git push 再次起作用。

【讨论】:

    猜你喜欢
    • 2018-10-18
    • 2023-02-08
    • 2013-11-21
    • 1970-01-01
    • 2011-03-22
    • 2018-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多