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

时间:2016-09-05 16:08:24

标签: git github

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

remote: github repo url 的权限被拒绝旧用户名

致命:无法访问 github repo url :请求的网址返回错误:403

我也尝试删除旧用户,但没有任何效果。 当我运行 git config --global --list 时,它会显示我的新细节。

我在发布之前尝试过很多东西,所以我真的不知道问题是什么。任何帮助将不胜感激!

6 个答案:

答案 0 :(得分:2)

我一直在为这个问题苦苦挣扎2个小时左右,并最终从一个答案中选出了一个主意:清理配置文件。为此,我只是在编辑器(sudo gedit .git / config)上将其打开,然后将文件完全保存为空。之后,我填写了一些丢失的信息,例如user.name,user.email。然后,我做了一个 git init 和一个 git clone ,并编辑了其中一个文件。当我尝试使用 git push origin master 上传该文件时,它提示我输入凭据(用户名和密码),最后我可以提交更改!希望对您有所帮助,对我的英语感到抱歉,这不是我的母语。

答案 1 :(得分: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和其他变量是你想要的那样。

答案 2 :(得分:1)

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

Then you can do push, and the terminal is going to answer for new credentials.

From ikaikastine

答案 3 :(得分:1)

我遇到了同样的问题,对我唯一有用的是手动删除保存在控制面板中的git凭据: 控制面板→用户帐户→凭据管理器→Windows凭据管理器→删除github凭据

尽管我尝试了所有其他git命令配置,但先进行了删除,然后在推送时重新输入用户名和电子邮件,使其连接到正确的帐户。

答案 4 :(得分:0)

您需要首先删除远程网址并添加新网址:

git remote rm origin
git remote add origin <url>

答案 5 :(得分:0)

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