如何同时推送代码到 2 github 个仓库?

How to push code to 2 github repositories at the same time?

我想使用git + vscode 从我的本地推送相同的代码到两个github repos 只有一个命令 而无需单独指定每个遥控器 .

我已经尝试配置文件中添加2个远程仓库: 更新的配置文件:

cat config
[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
        ignorecase = true
        precomposeunicode = true
[remote "origin"]
        url = git@github.com:profile1/-MS_E-commerce_Grus_Tep_Online_Full-time_2021_1.git
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master
[remote "github"]
        fetch = +refs/heads/*:refs/remotes/github/*
        url = git@github.com:profile2/e-commerceAPI.git
        pushurl = git@github.com:profile2/e-commerceAPI.git

现在当我 git push 只推送到一个 repo,这个

profile1/-MS_E-commerce_Grus_Tep_Online_Full-time_2021_1.git

我试过使用 git push -u github main 但它抛出错误:

error: src refspec main does not match any, error: failed to push some refs to 'github.com:profile2/e-comm..

我试过 git push -u origin main。 但是,我完全不熟悉这个过程,这是我的第一次尝试。请建议。只要保留我的提交,我也可以想办法每次都通过多个步骤推送它。

谢谢

git push 命令仅推送到一 (1) 个存储库,每次您 运行 它。您选择(如 one)它应该推送到的存储库,在您 运行 它时,使用参数 origingithub, 鉴于你的两个 remotes:

git push origin

或:

git push github

前者连接到:

url = git@github.com:profile1/-MS_E-commerce_Grus_Tep_Online_Full-time_2021_1.git

后者连接到:

pushurl = git@github.com:profile2/e-commerceAPI.git

它使用 pushurl 设置,因为它 一个 pushurl 设置;由于 origin 缺少这样的设置,因此它使用 url 设置。

在任何一种情况下,建立此连接后,您的 git push 将发送的一组提交和其他对象,以及它将发出的一组请求 谁在 URL 处回答,将取决于最后一个参数。因此,如果您想每次发送 master 分支提交,并且每次都让 GitHub 存储库更新 its master 分支,您将每次使用master

git push origin master
git push github master

应该运行两个命令来更新两个遥控器。这允许您检测哪一个失败,如果一个失败。

I want to push the same code from my local using git + vscode to two github repos with only one command without individually specifying each remote.

你不能那样做。事实证明,git push 这样做,但没有记录。因此,它可能会在未来停止工作。做其他事情肯定更安全:例如,您可以设置一个包含这两个命令的 aliasscript,并且 运行 别名或脚本,至少从命令行。您是否可以以及如何在 VS 中通过鼠标执行此操作,我不知道。

要使用 Git 执行此操作,只需在给定的 remote 下设置两个或更多 urlpushurl,例如:

[remote "pushpair"]
    pushurl = git@github.com:profile1/-MS_E-commerce_Grus_Tep_Online_Full-time_2021_1.git
    pushurl = git@github.com:profile2/e-commerceAPI.git

运行 git push pushpair master 现在将尝试按顺序推送到两个 pushurl 设置中的每一个。两者都可能失败; Git一个失败了还是会尝试剩下的一个。这是基于 Git 源代码,而不是文档。

(请注意,如果您使用一个 pushurl,任何 url 设置都将被忽略,因此两者都必须是 pushurl。如果您使用 url 而没有 pushurl,设置多个URL,都会用到。不过,这里的git fetch如何表现还不清楚。)