能否使用CLI在AWS不同账户间迁移CodeCommit代码仓库?方案咨询
CodeCommit跨AWS账户迁移方案说明
核心问题解答
- 无法直接通过CodeCommit CLI完成跨账户仓库迁移,CodeCommit CLI没有原生的跨账户迁移命令,仅支持单账户内的仓库管理操作。
- 支持跨账户克隆CodeCommit仓库,依托Git本身的分布式特性,可以实现包含所有提交历史、分支、标签的完整仓库迁移,仅需提前配置好两个账户的访问权限即可。
具体操作步骤
前置配置
- 为操作使用的IAM身份分别配置两个账户的权限:源账户需要开通
codecommit:GitPull权限,目标账户需要开通codecommit:GitPush、codecommit:CreateRepository权限 - 本地AWS CLI配置两套命名凭证,例如分别命名为
source(源账户凭证)和target(目标账户凭证)
迁移操作
- 在目标账户创建空CodeCommit仓库
aws codecommit create-repository --repository-name <你的仓库名> --profile target
执行后记录返回的目标仓库克隆URL。
- 本地裸克隆源仓库(包含全量历史)
git clone --mirror <源账户CodeCommit仓库克隆URL>
执行后会生成后缀为.git的裸仓库目录,包含源仓库全量提交、分支、标签信息。
- 镜像推送至目标仓库
进入上一步生成的裸仓库目录,执行:
git push --mirror <目标账户CodeCommit仓库克隆URL>
等待推送完成即完成全量迁移。
增量同步方案
如果迁移过程中源仓库仍有新提交,正式切换前可进入本地裸仓库目录执行以下命令完成增量同步:
git remote update git push --mirror
其他可选方案
如果需要批量迁移大量仓库,可以通过脚本批量执行上述流程;如果需要长期跨账户同步仓库变更,也可以配置CodePipeline跨账户监听源仓库变更自动同步到目标仓库。
内容的提问来源于stack exchange,提问作者Roshani
相关产品推荐
相关产品推荐

