如何在GitHub上使用不同的用户名进行推送?

18 浏览
0 Comments

如何在GitHub上使用不同的用户名进行推送?

我和一个朋友共用我的电脑。我在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日开始,不再支持密码身份验证。

0
0 Comments

问题出现的原因是用户想要在GitHub上使用不同的用户名进行推送,但是之前的方法不再适用,因为GitHub于2021年8月13日移除了密码身份验证的支持。解决方法是使用令牌进行身份验证。具体操作步骤如下:

1. 首先,在GitHub上生成一个令牌(token),可以在个人设置中的"Developer settings"下的"Personal access tokens"选项中生成。确保为令牌授予正确的权限。

2. 在本地的命令行窗口中,使用以下命令将令牌与要推送的GitHub仓库相关联:

$ git remote set-url origin https://B_user_name:your_token@github.com/B_user_name/project.git

将上述命令中的"your_token"替换为你在第一步中生成的令牌。

3. 现在,你可以使用以下命令将代码推送到GitHub上的仓库,使用的是与令牌相关联的用户名:

$ git push origin branch_name

将上述命令中的"branch_name"替换为你要推送的分支名称。

通过以上步骤,你可以在GitHub上使用不同的用户名进行推送,而不再依赖于密码身份验证。

0
0 Comments

问题的原因是:如果你使用不同的Windows用户,你的SSH密钥和git设置将是独立的。如果这对你来说不是一个选项,那么你的朋友应该将你的SSH密钥添加到她的GitHub帐户中。虽然之前的解决方案会让你以自己的身份推送,但它会允许你推送到她的代码库。如果你不想这样,并且在同一台电脑上的不同文件夹中工作,你可以通过删除config命令的-g标志,在git的一个文件夹内本地设置用户名和电子邮件:

git config user.name her_username
git config user.email her_email

另外,如果你通过https协议推送,Github将每次提示输入用户名/密码(除非你使用密码管理器)。

据我记得,SSH密钥在Github上必须是唯一的,不能将相同的密钥附加到多个帐户上。但是,你可以为同一个用户设置多个SSH密钥在Windows上(以及我所知道的任何地方)。

对于每个项目:git config --global user.name "Mona Lisa"

这只是更改显示的用户名,而不是登录的用户名。如其他答案中所述,一种好的方法是修改远程URL:git push https://your_other_username_at_github.com/username/provided path.git/其中@后面的所有内容是代码库的默认https URL。

不幸的是,这个方法不再适用:remote: Support for password authentication was removed on August 13, 2021.

0
0 Comments

问题出现的原因是GitHub在2021年8月13日移除了对密码身份验证的支持,并要求使用个人访问令牌。

解决方法是通过配置本地存储库来忽略全局配置的credential.helper,这样每次需要用户名和密码时都会提示输入。如果想要缓存用户名和密码,可以配置credential.helper为cache,或者使用其他方法。

下面是具体的解决方法:

1. 打开终端或命令行窗口。

2. 输入以下命令:

git config --local credential.helper ""
git push origin master

3. 这将配置你的本地存储库以忽略全局配置的credential.helper,并在每次需要时提示输入用户名和密码。

这样就可以在不同的用户名下推送到GitHub了。

感谢上述解决方法的提供者,他们通过这种方法成功地将代码迁移到了AWS CodeCommit。

需要注意的是,GitHub现在要求使用个人访问令牌进行身份验证,而不是密码。因此,在使用上述方法时,可能会收到GitHub的响应:"remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead."(2021年8月13日移除了对密码身份验证的支持,请使用个人访问令牌代替。)

希望这篇文章对解决如何在GitHub上使用不同用户名进行推送的问题有所帮助。

0