如何从Git终端完全删除用户信息?

5

我几天前创建了一个测试git和github账号。今天我创建了一个新的github账号,并使用 git config --global user.namegit config --global user.email 命令更新了我的git终端用户名和电子邮件地址。但是,当我使用 git push origin master 将repo推送到我的新github帐户时,它仍然似乎使用我之前创建的测试git用户名,并给出以下错误:

remote: Permission to github repo url denied to old username.

fatal: unable to access github repo url: The requested URL returned error: 403

我也尝试删除旧用户,但什么都没用。当我运行git config --global --list时,它显示了我的新详细信息。

在发布这篇文章之前,我已经尝试了很多方法,所以我真的不知道问题出在哪里。非常感谢您的任何帮助!


git config --local --list 显示什么? - Leon
你使用SSH身份验证吗? - Leon
6个回答

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

然后您可以进行推送,终端将为新凭据提供答案。

来自ikaikastine


3

我曾经遇到过同样的问题,唯一有效的方法是手动删除在控制面板中保存的Git凭据:

控制面板 → 用户账户 → 凭据管理器 → Windows凭据管理器 → 删除GitHub凭据

虽然我尝试了所有其他的Git命令配置,但是这种删除并重新输入用户名和电子邮件的方法能够让它连接到正确的账户。


3

我曾经遇到了这样一个问题,困扰我大约两个小时左右,最终从答案中找到了一个思路:清理配置文件。为此,我只需在编辑器中打开它(sudo gedit .git/config),并将文件完全清空后保存。之后,我填写了一些缺失的信息,如user.name,user.email。接着,我执行了 git initgit clone ,并编辑了其中一个文件。当我试图使用 git push origin master 将其上传时,它提示我输入凭据(用户名和密码),最终我成功提交了我的更改!希望这可以帮到你,对于我的英语不好,我表示抱歉,毕竟它不是我的母语。


3

我也遇到了这个问题,所以我使用my_repogit1 shaileshyadaav$ git config --local --unset-all user.name从配置文件中删除了名称和电子邮件,并且在此之后,您可以使用git config --list来验证详细信息。


我执行了取消本地和全局设置,然后它会要求用户凭据。 git config --global --unset-all user.name - asifaftab87
当你需要从系统中重置用户时,这个方法是有效的。 - shoaib sabir

1
Git文档说:
Git查找这些值的第一个地方是/etc/gitconfig文件,其中包含系统上每个用户及其所有存储库的值。如果您将选项--system传递给git config,则会特别从该文件读取和写入。
Git查找的下一个位置是~/.gitconfig(或~/.config/git/config)文件,它是特定于每个用户的。您可以通过传递--global选项使Git读取和写入此文件。
最后,Git在当前使用的任何存储库的Git目录(.git/config)中的配置文件中查找配置值。这些值特定于该单个存储库。
每个这些“级别”(系统、全局、本地)都会覆盖前一个级别中的值,因此.git/config中的值优先于/etc/gitconfig中的值,例如。
因此,您可以使用文本编辑器打开.git/config并检查您的user.email和其他变量是否符合您的要求。

-1
你需要先删除远程url,然后添加新的url:
git remote rm origin
git remote add origin <url>

这只改变了远程仓库的URL。 - A7x

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接