将现有 Git 存储库克隆到源存储库中 - Amazon CodeCatalyst

将现有 Git 存储库克隆到源存储库中

您可以将现有 Git 存储库克隆到 Amazon CodeCatalyst 中的空源存储库。这是在 CodeCatalyst 中使用之前托管在其他 Git 存储库提供程序中的代码的快速入门方法。您可以通过创建镜像克隆,然后将镜像推送到 CodeCatalyst 来克隆存储库的内容。或者,如果您有一个本地存储库,您想将其内容添加到 CodeCatalyst,您可以将 CodeCatalyst 源存储库作为另一个远程存储库添加到本地存储库,然后推送到空的源存储库。这两种方法同样有效。使用镜像克隆不仅能映射分支,还能映射所有引用。这是一种在 CodeCatalyst 中创建存储库工作副本的简单而干净的方法。向指向空 CodeCatalyst 源存储库的本地存储库添加远程存储库会将存储库内容添加到 CodeCatalyst 中,但同时也允许从本地存储库推送到 CodeCatalyst 源存储库和原始 Git 远程存储库。如果您想在不同的远程存储库中维护代码,这可能很有用,但如果其他开发人员只向其中一个远程存储库提交代码,则可能会导致冲突。

以下过程使用基本的 Git 命令来完成这项任务。在 Git 中完成任务有很多方法,包括克隆。有关更多信息,请参阅 Git 文档

重要

必须先在 CodeCatalyst 中创建一个空存储库,然后才能将内容克隆到该存储库。您还必须拥有个人访问令牌。有关更多信息,请参阅创建空的源存储库创建个人访问令牌

使用 git clone --mirror 将现有 Git 存储库克隆到 CodeCatalyst
  1. 在 CodeCatalyst 控制台中,导航到创建了空存储库的项目。

  2. 在项目的摘要页面上,从列表中选择空存储库,然后选择查看存储库。或者,在导航窗格中,选择代码,然后选择源存储库。从项目的源存储库列表中选择空存储库的名称。

  3. 复制空存储库的 HTTPS 克隆 URL。您在推送镜像克隆时需要此 URL。例如,如果您将 ExampleCorp 空间的 MyExampleProject 项目中的源存储库命名为 MyExampleRepo,并且您的用户名为 LiJuan,那么您的克隆 URL 可能如下所示:

    https://LiJuan@git.us-west-2.codecatalyst.aws/v1/ExampleCorp/MyExampleProject/MyExampleRepo
  4. 在命令行或终端窗口中,使用 git clone --mirror 命令为要克隆到 CodeCatalyst 的 Git 存储库创建镜像克隆。例如,如果要创建 GitHub 中 codecatalyst-blueprints 存储库的镜像克隆,可以输入以下命令:

    git clone --mirror https://github.com/aws/codecatalyst-blueprints.git
  5. 切换到您执行克隆操作的目录。

    cd codecatalyst-blueprints.git
  6. 运行 git push 命令,指定目标 CodeCatalyst 源存储库的 URL 和名称以及 --all 选项。(这是您在步骤 3 中复制的 URL。) 例如:

    git push https://LiJuan@git.us-west-2.codecatalyst.aws/v1/ExampleCorp/MyExampleProject/MyExampleRepo --all
添加远程存储库并将本地存储库推送到 CodeCatalyst
  1. 在 CodeCatalyst 控制台中,导航到创建了空存储库的项目。

  2. 在项目的摘要页面上,从列表中选择空存储库,然后选择查看存储库。或者,在导航窗格中,选择代码,然后选择源存储库。从项目的源存储库列表中选择空存储库的名称。

  3. 复制空存储库的 HTTPS 克隆 URL。您在推送镜像克隆时需要此 URL。例如,如果您将 ExampleCorp 空间的 MyExampleProject 项目中的源存储库命名为 MyExampleRepo,并且您的用户名为 LiJuan,那么您的克隆 URL 可能如下所示:

    https://LiJuan@git.us-west-2.codecatalyst.aws/v1/ExampleCorp/MyExampleProject/MyExampleRepo
  4. 在命令行或终端窗口中,将目录更改为要推送到 CodeCatalyst 的本地存储库。

  5. 运行 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。

  6. 使用 git remote remove 命令移除用于获取和推送 origin 的 CodeCommit 存储库 URL:

    git remote remove origin
  7. 使用 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
  8. 运行 git push 命令将本地存储库推送到所有已配置的推送远程存储库。或者,运行 git push -u -origin 命令,指定 --all 选项将本地存储库同时推送到两个存储库。例如:

    git push -u -origin --all
提示

根据 Git 版本的不同,--all 可能无法将本地存储库的所有分支推送到空存储库。您可能需要分别签出和推送每个分支。