将现有 Git 存储库克隆到源存储库中
您可以将现有 Git 存储库克隆到 Amazon CodeCatalyst 中的空源存储库。这是在 CodeCatalyst 中使用之前托管在其他 Git 存储库提供程序中的代码的快速入门方法。您可以通过创建镜像克隆,然后将镜像推送到 CodeCatalyst 来克隆存储库的内容。或者,如果您有一个本地存储库,您想将其内容添加到 CodeCatalyst,您可以将 CodeCatalyst 源存储库作为另一个远程存储库添加到本地存储库,然后推送到空的源存储库。这两种方法同样有效。使用镜像克隆不仅能映射分支,还能映射所有引用。这是一种在 CodeCatalyst 中创建存储库工作副本的简单而干净的方法。向指向空 CodeCatalyst 源存储库的本地存储库添加远程存储库会将存储库内容添加到 CodeCatalyst 中,但同时也允许从本地存储库推送到 CodeCatalyst 源存储库和原始 Git 远程存储库。如果您想在不同的远程存储库中维护代码,这可能很有用,但如果其他开发人员只向其中一个远程存储库提交代码,则可能会导致冲突。
以下过程使用基本的 Git 命令来完成这项任务。在 Git 中完成任务有很多方法,包括克隆。有关更多信息,请参阅 Git 文档
使用 git clone --mirror
将现有 Git 存储库克隆到 CodeCatalyst
-
在 CodeCatalyst 控制台中,导航到创建了空存储库的项目。
-
在项目的摘要页面上,从列表中选择空存储库,然后选择查看存储库。或者,在导航窗格中,选择代码,然后选择源存储库。从项目的源存储库列表中选择空存储库的名称。
-
复制空存储库的 HTTPS 克隆 URL。您在推送镜像克隆时需要此 URL。例如,如果您将 ExampleCorp 空间的 MyExampleProject 项目中的源存储库命名为 MyExampleRepo,并且您的用户名为 LiJuan,那么您的克隆 URL 可能如下所示:
https://
LiJuan
@git.us-west-2.codecatalyst.aws/v1/ExampleCorp
/MyExampleProject
/MyExampleRepo
-
在命令行或终端窗口中,使用
git clone --mirror
命令为要克隆到 CodeCatalyst 的 Git 存储库创建镜像克隆。例如,如果要创建 GitHub 中 codecatalyst-blueprints 存储库的镜像克隆,可以输入以下命令:git clone --mirror
https://github.com/aws/codecatalyst-blueprints.git
-
切换到您执行克隆操作的目录。
cd
codecatalyst-blueprints.git
运行 git push 命令,指定目标 CodeCatalyst 源存储库的 URL 和名称以及 --all 选项。(这是您在步骤 3 中复制的 URL。) 例如:
git push https://
LiJuan
@git.us-west-2.codecatalyst.aws/v1/ExampleCorp
/MyExampleProject
/MyExampleRepo
--all
添加远程存储库并将本地存储库推送到 CodeCatalyst
-
在 CodeCatalyst 控制台中,导航到创建了空存储库的项目。
-
在项目的摘要页面上,从列表中选择空存储库,然后选择查看存储库。或者,在导航窗格中,选择代码,然后选择源存储库。从项目的源存储库列表中选择空存储库的名称。
-
复制空存储库的 HTTPS 克隆 URL。您在推送镜像克隆时需要此 URL。例如,如果您将 ExampleCorp 空间的 MyExampleProject 项目中的源存储库命名为 MyExampleRepo,并且您的用户名为 LiJuan,那么您的克隆 URL 可能如下所示:
https://
LiJuan
@git.us-west-2.codecatalyst.aws/v1/ExampleCorp
/MyExampleProject
/MyExampleRepo
-
在命令行或终端窗口中,将目录更改为要推送到 CodeCatalyst 的本地存储库。
-
运行 git remote -v 命令查看本地存储库的现有远程存储库。例如,如果您要在美国东部(俄亥俄州)区域克隆名为
MyDemoRepo
的 AWS CodeCommit 存储库的本地存储库,命令输出可能如下所示: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)如果您想继续使用存储库,可复制远程 URL。
-
使用
git remote remove
命令移除用于获取和推送 origin 的 CodeCommit 存储库 URL:git remote remove origin
-
使用 git remote add 命令将 CodeCatalyst 源存储库 URL 添加为本地存储库的获取和推送远程地址。例如:
git remote add origin https://
LiJuan
@git.us-west-2.codecatalyst.aws/v1/ExampleCorp
/MyExampleProject
/MyExampleRepo
这将用 CodeCatalyst 源存储库 URL 替换 CodeCommit 存储库推送 URL,但不会更改获取 URL。因此,如果再次运行 git remote -v 命令,就会发现现在是从 CodeCommit 远程存储库拉取(获取)代码,但配置为将本地存储库中的更改推送到 CodeCatalyst 源存储库:
origin https://git-codecommit.
us-east-2
.amazonaws.com/v1/repos/MyDemoRepo
(fetch) origin https://LiJuan@git.us-west-2.codecatalyst.aws/v1/ExampleCorp/MyExampleProject/MyExampleRepo (push)如果您想使用
git remote set-url
命令同时推送到两个存储库,可以选择重新添加 CodeCommit 远程 URL:git remote set-url --add --push origin https://git-codecommit.
us-east-2
.amazonaws.com/v1/repos/MyDemoRepo
运行
git push
命令将本地存储库推送到所有已配置的推送远程存储库。或者,运行 git push -u -origin 命令,指定 --all 选项将本地存储库同时推送到两个存储库。例如:git push -u -origin --all
提示
根据 Git 版本的不同,--all 可能无法将本地存储库的所有分支推送到空存储库。您可能需要分别签出和推送每个分支。