我更改了GitHub密码后,我无法推送到遥控器:
$ git push origin master
remote: Invalid username or password.
是否只重新克隆存储库?
答案 0 :(得分:169)
如果您只更改了遥控器的密码,而不是用户名,请尝试使用以下命令检查遥控器的信息: -
git remote show origin
这会询问给定git用户的密码,填写正确的密码,然后尝试: -
git pull
,或者
git push
除非您必须更改其他内容,例如用户名或远程URL,否则它应该可以工作,您可以查看以下Git文档: -
https://help.github.com/articles/setting-your-username-in-git/
答案 1 :(得分:32)
OP kenu.heo通过删除然后重新克隆回购邮件解决了这个问题。
但对于其他人:
这取决于您使用的操作系统,git版本和协议。
根据操作系统的不同,您可以使用cache your credentials(OSX KeyChain on Mac,netrc credential helper on Windows or Linux),这可以解释为什么在更改GitHub密码后推送无效。
对于钥匙串,您需要reset that password stored in it。
该密码问题还表明您使用的是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 Authentication)。如果是这种情况,则需要生成PTA(个人令牌访问) 请点击“Configure Git clients, like GitHub for Windows, to not ask for authentication”了解更多信息。
答案 2 :(得分:29)
更新终端中的密码。尝试以下命令,它会再次提示您输入密码。
git push -u origin master
答案 3 :(得分:16)
根据我的经验,您只需要重新输入遥控器。
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':
然后开始推
希望它有所帮助。
答案 4 :(得分:3)
在Windows系统上,没有适用于我的步骤,问题是凭据存储在Windows凭据管理器中。
您可以转到控制面板->用户帐户->凭据管理器-> Windows凭据
在“通用凭据”下,您将找到git Url,展开选择并单击“编辑”。
编辑后,只需再次触发git push,它就可以工作。
答案 5 :(得分:2)
对我来说,使用git-bash在Windows7上运行git,运行:
git push origin master
搞定了。这促使Windows7再次询问我的git信用卡,然后将它们存储起来(无论Windows是什么),以更新密码。
答案 6 :(得分:1)
用户名和密码可能存储在Windows凭据管理器中。 如有必要,请检查并在那里更新。
(我知道这是显而易见的和简单的,但可能对某些人有帮助。)
答案 7 :(得分:1)
如果您已设置Github 2FA Auth,则需要一个个人访问令牌(代替git cli中的github密码),请按照以下说明进行创建:https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line
然后做类似的事情
git checkout master
git pull origin <---此时,系统将要求您输入凭据,输入普通的github用户,并以密码粘贴在上面的链接中生成的令牌。
答案 8 :(得分:1)
您可以通过以下命令更新用户名和密码:
$ git remote set-url origin https://<USERNAME>:<PASSWORD>@github.com/path/to/repo.git
确保将USERNAME更改为您的git用户名,并将PASSWORD更改为新的git密码。
下一个git push
应该适合您。
详细了解此article
答案 9 :(得分:0)
我转到了项目的根文件夹。打开.git文件夹。打开配置文件。有几行是这样的:
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
[remote "origin"]
url = http://username:IncorrectOldPassword@mycompanygithublink/stash/scm/myproject.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
...
我在那更正了密码,瞧!利润。
答案 10 :(得分:0)
好的,原来的帖子已经很老了,但这是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对this question上的GitHub Community Forum的回复为我指明了正确的方向。关键是将我的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
成功。