我和一个朋友共用我的电脑。我已经在Windows 7上使用git bash shell推送到GitHub。现在我们在那台电脑上做一个不同的项目,我需要她推到她的账户上。但它一直试图使用我的用户名,并说我没有访问她的存储库:
$ git push her_github_repository our_branch
ERROR: Permission to her_username/repository.git denied to my_username.
fatal: The remote end hung up unexpectedly
重要:2021年8月13日删除了对密码验证的支持。
如果您使用不同的windows用户,您的SSH密钥和git设置将是独立的。
如果这对你来说不是一个选择,那么你的朋友应该把你的SSH密钥添加到她的Github帐户。
虽然,之前的解决方案会让你自己推动,但它会让你推动她的回购。如果你不想在同一台电脑的不同文件夹中工作,你可以通过删除config命令的-g标志,在git的本地文件夹中设置用户名和电子邮件:
git config user.name her_username
git config user.email her_email
或者,如果你推送https协议,Github每次都会提示输入用户名/密码(除非你使用密码管理器)。
如果运行git push后,git要求输入用户密码,但你想以new_user的身份推送,你可能需要使用git配置remote.origin.url:
$ git push
user@my.host.com:either/branch/or/path's password:
此时使用^C退出git推送,并使用following作为new_user进行推送。
$ git config remote.origin.url
user@my.host.com:either/branch/or/path
$ git config remote.origin.url new_user@my.host.com:either/branch/or/path
$ git push
new_user@my.host.com:either/branch/or/path's password:
请遵循以下步骤:
你必须明白这一点,在提交之前定义作者!
提交已经被冻结:它们拥有为其作者和提交者设置的任何名称,并且这些名称不能更改。
# you can check what's currently:
git config user.name
git config user.email
git config user.name "your_github_username"
git config user.email "your_github_email"
# Again check what's currently:
git config user.name
git config user.email
检查你的提交被标记到谁?
git log
# once you're confirmed that it's tagged to you, then you should move to step 3
如果作者是错误的,那么您可以轻松地撤消上次提交而不会丢失更改
此外,在移动到步骤3之前,不要忘记遵循步骤1进行完整性检查。
提示自己输入github_username和github_password
git config --local credential.helper ""
git push
# it will ask you to enter your github_username and github_password