添加、提交并推送到 2 个远程 GitHub 存储库

Add, commit and push to 2 remote GitHub repositories

1。简要

我没有找到如何快速添加、提交和推送更改到 2 个 GitHub 存储库,我不需要添加、提交和推送更改到 2 GitHub每次单独存储库。


2。示例工作区

本地工作空间:

SashaSource
    .git
    SashaSourceSubfolder1
    SashaSourceSubfolder2
    SashaOutput.github.io
        .git
        index.html
        SashaAnother.html

我有 2 个远程 GitHub 存储库:

我用Pelican static site generator。我在 SashaSourceSubfolder1SashaSourceSubfolder2 folder 中进行更改 → 我进行构建(使用 makefabric 工具或 pelican content 命令)→ 我在 SashaOutput.github.io 文件夹。 (我设置了 Pelican,SashaOutput.github.io/.git 文件夹不会改变,如果我构建 )。

现在我想将我的更改推送到 SashaSourceSashaOutput.github.io 远程存储库。


3。实际行为

我需要运行

git add . && git commit -m "Example commit description" && git push

SashaSource 存储库中比我需要 运行 相同的命令到 SashaOutput.github.io 存储库。


4。预期行为

我在终端中打印任何命令 → git 将更改推送到 SashaSourceSashaOutput.github.io 远程存储库,两者都具有相同的提交描述,用户不需要 运行 每次执行 2 次相同的命令。


5。没有帮助

  1. 我阅读了 git submodules,但我没有找到如何解决我的问题。
  2. 我找到了如何推送更改 to 2 remote repositories。我设置 git remotegit add . && git commit -m "Example commit description" → 我得到输出:

    D:\SashaSource\>git push all
    To https://github.com/Kristinita/SashaOutput.github.io.git
     ! [rejected]        master -> master (fetch first)
    error: failed to push some refs to 'https://github.com/Kristinita/SashaOutput.github.io.git'
    hint: Updates were rejected because the remote contains work that you do
    hint: not have locally. This is usually caused by another repository pushing
    hint: to the same ref. You may want to first integrate the remote changes
    hint: (e.g., 'git pull …') before pushing again.
    hint: See the 'Note about fast-forwards' in 'git push --help' for details.
    Counting objects: 4, done.
    Delta compression using up to 4 threads.
    Compressing objects: 100% (4/4), done.
    Writing objects: 100% (4/4), 770 bytes | 0 bytes/s, done.
    Total 4 (delta 3), reused 0 (delta 0)
    remote: Resolving deltas: 100% (3/3), completed with 3 local objects.
    To https://github.com/Kristinita/SashaSource
       dc36727..3e5d63b  master -> master
    

    我的更改推送到 1 个远程存储库。我想,我需要在推送之前添加并提交对 SashaOutput.github.io 的更改,但我没有找到我该怎么做。

  3. 我阅读了 another Stack Overflow questions 关于推送到 2 个或更多存储库的内容,但我没有在其中找到用户如何向 2 个存储库添加和提交更改。

  4. 我不明白,我怎么能为我的 Windows 中的预期行为编写脚本。提交描述——是一个变量,我如何在脚本中使用它?


6.不提供

  1. 我的输出 SashaOutput.github.io 需要单独的存储库,因为 GitHub 页面不支持 Pelican 的源代码,需要在存储库的根目录中输出目录。请不要为我的站点提供使用 1 个远程 GitHub 存储库,而不是 2.
  2. 请不要说我需要使用 Jekyll。

7。环境

操作系统和版本:
Windows 10 企业 LTSB 64 位 EN
git:
版本 2.12.0.windows.1

Windows 用户的解决方案。


1。预期行为

第 3 节中的脚本将更改添加、提交和推送到远程源存储库(SashaSource 有问题),然后添加、提交更改并将更改推送到远程输出存储库(SashaOutput.github.io 有问题)。对于两个存储库的提交消息,将设置变量(%SASHAMESSAGE% 在回答中)。


2。设置提交信息

在您首选的终端中打印:

SET SASHAMESSAGE=[Test] Sasha Princess of the Universe!
  • SASHAMESSAGE — 提交消息的变量;
  • [Test] Sasha Princess of the Universe! — 示例提交消息。

3。批处理文件

创建扩展名为 bat 的文件,例如 GitPush2Repositories.bat:

git add .
git commit -m "%SASHAMESSAGE%"
git push
cd SashaOutput.github.io
git add .
git commit -m "%SASHAMESSAGE%"
git push
  • SashaOutput.github.io — 您的输出文件夹。

4。 运行批次

在您的源文件夹中打开终端(SashaSource 在一个问题中)→ 在终端中打印:

"D:\SashaBatch\GitPush2Repositories.bat"
  • D:\SashaBatch\GitPush2Repositories.batbat 文件的路径。

您必须获得预期的行为。


5。额外链接