将提交推送到额外的 Git 存储库 - Amazon CodeCommit
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

将提交推送到额外的 Git 存储库

您可以将本地存储库配置为将更改推送到两个远程存储库。例如,您可能想要在尝试使用 Amazon CodeCommit 时继续使用现有的 Git 存储库解决方案。按照以下基本步骤操作可将本地存储库中的更改推送到 CodeCommit 和单独的 Git 存储库。

提示

如果您没有 Git 存储库,则可在 CodeCommit 以外的服务上创建一个空的 Git 存储库,然后将您的 CodeCommit 存储库迁移到该存储库。您应按照迁移到 CodeCommit 中的步骤进行操作。

  1. 在命令提示符或终端中,切换到本地存储库目录,然后运行 git remote -v 命令。您应该可以看到类似于如下所示的输出内容:

    对于 HTTPS:

    origin https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo (fetch) origin https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo (push)

    对于 SSH:

    origin ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo (fetch) origin ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo (push)
  2. 运行git remote set-url --add --push origin git-repository-name命令在哪里git-repository-name是要托管代码的 Git 存储库的 URL 和名称。这会将 origin 的推送目标更改为该 Git 存储库。

    注意

    git remote set-url --add --push 会覆盖推送的默认 URL,因此您必须运行该命令两次,如后面的步骤所示。

    例如,以下命令会将原始推送更改为:一些网址/MyDestination存储库:

    git remote set-url --add --push origin some-URL/MyDestinationRepo

    该命令不返回任何内容。

    提示

    如果要推送到需要凭证的 Git 存储库,请确保在凭证辅助程序或 some-URL 字符串配置中配置这些凭证。否则,到该存储库的推送操作将失败。

  3. 再次运行 git remote -v 命令,它应产生类似以下内容的输出:

    对于 HTTPS:

    origin https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo (fetch) origin some-URL/MyDestinationRepo (push)

    对于 SSH:

    origin ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo (fetch) origin some-URL/MyDestinationRepo (push)
  4. 现在,添加 CodeCommit 存储库。再次运行 git remote set-url --add --push origin,这次请指定您的 CodeCommit 存储库的 URL 和存储库名称。

    例如,以下命令将添加推送起源https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemo存储库:

    对于 HTTPS:

    git remote set-url --add --push origin https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo

    对于 SSH:

    git remote set-url --add --push origin ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo

    该命令不返回任何内容。

  5. 再次运行 git remote -v 命令,它应产生类似以下内容的输出:

    对于 HTTPS:

    origin https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo (fetch) origin some-URL/MyDestinationRepo (push) origin https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo (push)

    对于 SSH:

    origin ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo (fetch) origin some-URL/MyDestinationRepo (push) origin ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo (push)

    现在,您将两个 Git 存储库设为了推送目标,但推送会发送到。一些网址/MyDestination首先存储库。如果到该存储库的推送失败,则您的提交不会被推送到任何一个存储库。

    提示

    如果另一个存储库需要凭证而您又打算手动输入该凭证,请考虑更改推送顺序,以便先推送到 CodeCommit。运行 git remote set-url --delete 删除首先推送到的存储库,然后运行 git remote set-url --add 再次添加它,使其成为列表中的第二个推送目标。

    有关更多选项,请参阅 Git 文档。

  6. 要验证您是否正在推送到两个远程存储库,请使用文本编辑器在本地存储库中创建下面的文本文件:

    bees.txt ------- Bees are flying insects closely related to wasps and ants, and are known for their role in pollination and for producing honey and beeswax.
  7. 运行 git add 将更改暂存在本地存储库中:

    git add bees.txt
  8. 运行 git commit 提交本地存储库中的更改:

    git commit -m "Added bees.txt"
  9. 要将本地存储库的提交推送到远程存储库,请运行 git push -u remote-name branch-name,其中 remote-name 是本地存储库用于远程存储库的别名,branch-name 是要推送到存储库的分支的名称。

    提示

    您只需在第一次推送时使用 -u 选项。然后将设置上游跟踪信息。

    例如,运行 git push -u origin main 会显示推送到两个远程存储库中的预期分支,并产生类似以下内容的输出:

    对于 HTTPS:

    Counting objects: 5, done. Delta compression using up to 4 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 5.61 KiB | 0 bytes/s, done. Total 3 (delta 1), reused 0 (delta 0) To some-URL/MyDestinationRepo a5ba4ed..250f6c3 main -> main Counting objects: 5, done. Delta compression using up to 4 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 5.61 KiB | 0 bytes/s, done. Total 3 (delta 1), reused 0 (delta 0) remote: To https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo a5ba4ed..250f6c3 main -> main

    对于 SSH:

    Counting objects: 5, done. Delta compression using up to 4 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 5.61 KiB | 0 bytes/s, done. Total 3 (delta 1), reused 0 (delta 0) To some-URL/MyDestinationRepo a5ba4ed..250f6c3 main -> main Counting objects: 5, done. Delta compression using up to 4 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 5.61 KiB | 0 bytes/s, done. Total 3 (delta 1), reused 0 (delta 0) remote: To ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo a5ba4ed..250f6c3 main -> main

有关更多选项,请参阅 Git 文档。