更改了GitHub密码,不再能够推送回远程


111

更改GitHub密码后,无法推送到远程服务器:

$ git push origin master
remote: Invalid username or password.

是否只有重新克隆存储库?


只需删除并再次添加遥控器
onmyway133 '16

1
真?“只需删除并再次添加遥控器”?从头开始并不方便,并且在某些操作中容易出错。
杰森·S

1
启用两因素身份验证后,也会发生这种情况,在这种情况下,您应该按照此处的说明进行操作:stackoverflow.com/a/34919582/2898283
mechatroner

@JasonS很难重新添加遥控器。这只会修改远程分支的本地副本,而您无论如何都不能直接对其进行修改。尽管我不确定跟踪是否会受到影响,但所有本地分支机构都将保持不变。
jpmc26

@ jpmc26我的意思不是存储库内容,而是重新添加URL。
詹森·S

Answers:


187

如果您仅更改了遥控器的密码而不是用户名,请尝试使用以下命令检查遥控器的信息:-

git remote show origin

这将要求您输入给定git用户的密码,正确填写密码,然后尝试:-

git pull

要么,

git推

除非必须更改用户名或远程URL之类的东西,否则它应该可以工作,您可以查看以下Git文档:

https://help.github.com/articles/setting-your-username-in-git/

https://help.github.com/articles/changing-a-remote-s-url/


9
这个对我有用。git remote show origin显示提示
Lazaro Fernandes Lima Suleiman

14
有趣的是- git remote show origin并没有提示我,只是- show激怒了我,所以我认为它失败了(按我需要的去做)。但是,以防万一,然后我尝试了一下git push origin master提示了我。所以...我仍然可以到达需要的地方:)
dwanderson

1
在IntelliJ和Android Studio上进行了尝试,并且都没有重新启动就无法正常工作,可能是因为凭据已缓存。我编辑了答案以反映这一点。
奥利弗·豪斯勒

2
就像我描述的那样工作。
nabrown

2
在Mac上按预期工作。应该接受答案。
Aakanksha

38

在终端中更新密码。尝试以下命令,它将再次提示您输入密码。

git push -u origin master

37

OP kenu.heo已经通过去除围绕这一问题的工作,然后再重新克隆回购。

但对于其他:

这取决于您的操作系统,git版本和所使用的协议。

根据操作系统的不同,您可以使用多种方法来缓存凭据Mac上为OSX KeyChainWindows或Linux上为netrc凭据帮助器),这可以解释为什么更改GitHub密码后推送无法正常工作。
对于钥匙串,您需要重置存储在其中的密码

该密码问题还表明您使用的是https网址(而不是ssh网址),该网址取决于公共/私有ssh密钥,并且不受GitHub帐户密码的影响,因为已将公共SSH密钥注册到您的GitHub帐户不会改变)。

用检查git remote -v

您可以通过以下方式强制git使用GitHub登录名:

git remote set-url origin https://Username@github.com/Username/MyRepo.git

(用您自己的值替换' Username'和' MyRepo.git')

然后再次尝试推送,它应该询问您的GitHub密码。输入新的。

如果这不起作用,请检查是否已激活2FA(2-Form身份验证)。在这种情况下,您需要生成一个PTA(个人令牌访问)。
请参阅“将Git客户端(例如Windows的GitHub)配置为不要求身份验证 ”中的详细信息。


谢谢,我使用的是MacOSX,git1.8.x。我先删除了本地存储库,然后将其倾斜。
kenu.heo 2014年

2
@ kenu.heo好的。我已经编辑了答案以包括您的结论,但是我还添加了可以帮助他人的元素。
VonC

git remote set-url origin https://github.com/shared_repo/shared_repo.git通过Git Shell在Windows上为我工作
Choylton B. Higginbottom,2016年

适用于Ubuntu 16.04 LTS。
2016年

22

在Windows系统上,没有适用于我的步骤,问题是凭据存储在Windows凭据管理器中。

您可以转到控制面板->用户帐户->凭据管理器-> Windows凭据

在“通用凭据”下,您将找到git Url,展开选择并单击“编辑”。

一旦编辑,只需再次触发git push,它就可以工作。

信息来源:- 从Git删除凭据


1
我可以在Windows 10上确认相同
。– tmsss

这对我有用。Windows存储了git凭据,并且在更新Windows的密码后,我的官方git帐户无法同步。
克里希纳·奥扎

16

根据我的经验,您只需要重新输入remote-addr即可

git会向usr / password询问新密码,而不是保持沉默并使用不推荐使用的密码。

查看您的遥控器,找到您要更改的遥控器

>git remote  
github
gitcafe
company

例如,如果您更改了公司的回购密码,则可以执行以下操作:

>git remote remove company

不会碰到您的文件夹不会碰到您的提交。这只是从git中删除url-string

然后,再次添加此网址:

>git remote add company https://git.AyCramba.com/xxx.git

推送到它:

>git push company master
username for 'https://git.AyCramba.com':
password for 'https://git.AyCramba.com':

然后它开始推动

希望能帮助到你。


1
git remote set-url我提到我的回答做了删除+添加。
VonC

3

用户名和密码可能存储在Windows凭据管理器中。如有必要,请检查并在那里更新。

(我知道这有点明显和简单,但可能对某些人有所帮助。)


2

对我来说,使用git-bash在Windows7上运行git,运行:

git push origin master

得到它的工作。这提示Windows7再次询问我的git凭据,然后将它们存储(无论Windows做什么),以更新密码。


1

好的,原始帖子很旧,但这是Google的最佳搜索结果,没有一个答案对我有用。其他的SO和GH帖子也不起作用。发布此内容可帮助在这里关注我的任何人!

我的情况略有不同:个人GH帐户,使用SSH和Mac上的git命令行推送到私人公司存储库。我的密码既不存储在我的.gitconfig钥匙串中也不存储在git中credential.helper

在下面的示例中,PersonalName是我的GH帐户,CompanyName是公司(GH上存储库的所有者),而RepoName是存储库。

我的原始错误消息也有所不同:尝试git push origin master导致

remote: Repository not found.
fatal: repository 'https://github.com/CompanyName/RepoName.git/' not found

在更改我的GH密码之前,该遥控器已在工作,并且我不想删除该遥控器,因为我需要推送本地更改。

最终,塞维斯(Seveas)GitHub社区论坛上对这个问题的回答为我指明了正确的方向。关键是将我的GH帐户名与远程(专用)存储库关联。

这对我有用:

git remote set-url origin https://PersonalName@github.com/CompanyName/RepoName.git

然后

git remote show origin

提示

Password for 'https://PersonalName@github.com': 

我能够输入新密码,查看远程详细信息并git push origin master成功。


0

如果您已设置Github 2FA Auth,则需要一个个人访问令牌(代替git cli中的github密码),请按照以下说明进行创建:https : //help.github.com/en/github/authenticating-to -github /为命令行创建一个个人访问令牌

然后做类似的事情

git checkout主

git pull origin <---此时,系统将要求您提供凭据,输入您的普通github用户,并使用密码粘贴上面链接中生成的令牌作为密码。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.