如何将一个本地git回购协议推送到两个不同的github账户

dxxyhpgq  于 2022-12-10  发布在  Git
关注(0)|答案(2)|浏览(167)

在您跳至将此问题标记为重复问题之前,请注意:
这另一个问题似乎相关,但我相信它不完全相同,唯一的答案张贴是完全不够的。我尝试了“解决方案”,但无法使它工作:Two github accounts to push to same repo
另一个问题有一个类似的标题(@derek-brown误导版的结果),但这个问题实际上与我的完全不同:Pushing a local repo to multiple github accounts
这是一个场景:

  • 使用VS代码、Git Bash和CMD的Windows 10机器。
  • 一个位于C:\code\myproject.git的单个存储库
  • Github帐户#1,用户名为github-user 1(电子邮件:github-user1@gmail.com
  • Github帐户#2,用户名为github-user 2(电子邮件:github-user2@gmail.com
  • Github存储库#1位于github-user 1下,https://github.com/github-user1/myproject
  • Github存储库#2位于github-user 2下,https://github.com/github-user2/myproject

本地存储库具有以下远程:

$ git remote -v
myremote1 git@github.com:github-user1/myproject.git (fetch)
myremote1 git@github.com:github-user1/myproject.git (push) 
myremote2 git@github.com:github-user2/myproject.git (fetch)
myremote2 git@github.com:github-user2/myproject.git (push)

我希望能够以最简单的方式将此回购协议推/拉到两个远程。
到目前为止,我已经完成了以下工作:

  • 已为两个身份创建ssh密钥:
  • 用户名github-user1@gmail.com
  • 用户名和github-user2@gmail.com
  • 已将标识添加到ssh代理,其中包含:
$ eval "$(ssh-agent -s)"
$ ssh-add ~/.ssh/id_ed25519_github_user1
$ ssh-add ~/.ssh/id_ed25519_github_user1

1.将公钥添加到相应github帐户的SSH Keys部分,如下所述:https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account
1.在我的~.ssh文件夹中添加了一个包含以下内容的配置文件:

#github-user1 account
Host github-user1
  Hostname github.com
  User git
  IdentityFile ~/.ssh/id_ed25519_github_user1

#github-user2 account
Host github-user2
  Hostname github.com
  User git
  IdentityFile ~/.ssh/id_ed25519_github_user2

当我尝试推到任何一个遥控器时,我得到如下错误:

$ git push myremote1 main
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.      

Please make sure you have the correct access rights
and the repository exists.
agyaoht7

agyaoht71#

好吧,我把遥控器从:

$ git remote -v
myremote1 git@github.com:github-user1/myproject.git (fetch)
myremote1 git@github.com:github-user1/myproject.git (push) 
myremote2 git@github.com:github-user2/myproject.git (fetch)
myremote2 git@github.com:github-user2/myproject.git (push)

收件人:

$ git remote -v
myremote1 git@github-user1:github-user1/myproject.git (fetch)
myremote1 git@github-user1:github-user1/myproject.git (push) 
myremote2 git@github-user2:github-user2/myproject.git (fetch)
myremote2 git@github-user2:github-user2/myproject.git (push)

请注意,我已经将“@”后面的主机名更改为我在~.ssh文件夹的配置文件中输入的主机名。

yquaqz18

yquaqz182#

要使用的实际命令有:

cd /path/to/repository
git remote set-url myremote1 github-user1:github-user1/myproject.git
git remote set-url myremote2 github-user2:github-user1/myproject.git

您不需要git@零件,因为它已经在~/.ssh/config档案中指定为User git

相关问题