本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将提交推送到额外的 Git 存储库
您可以将本地存储库配置为将更改推送到两个远程存储库。例如,您可能想要在尝试使用 Amazon CodeCommit 时继续使用现有的 Git 存储库解决方案。按照以下基本步骤操作可将本地存储库中的更改推送到 CodeCommit 和单独的 Git 存储库。
如果您没有 Git 存储库,则可在 CodeCommit 以外的服务上创建一个空的 Git 存储库,然后将您的 CodeCommit 存储库迁移到该存储库。您应按照迁移到 CodeCommit 中的步骤进行操作。
-
在命令提示符或终端中,切换到本地存储库目录,然后运行 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)
-
运行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
字符串配置中配置这些凭证。否则,到该存储库的推送操作将失败。 -
再次运行 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) -
现在,添加 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
该命令不返回任何内容。
-
再次运行 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 文档。
-
要验证您是否正在推送到两个远程存储库,请使用文本编辑器在本地存储库中创建下面的文本文件:
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.
-
运行 git add 将更改暂存在本地存储库中:
git add bees.txt
-
运行 git commit 提交本地存储库中的更改:
git commit -m "Added bees.txt"
-
要将本地存储库的提交推送到远程存储库,请运行 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 文档。