迁移AWS账户期间,如何在Mac上同时访问两个账户的CodeCommit仓库?
当然可以实现!Mac上同时访问两个AWS账户的CodeCommit仓库
我之前帮好几个同事解决过一模一样的问题,核心是让Git针对不同的CodeCommit仓库路径,自动匹配对应的HTTPS凭证。下面给你两种最实用的方案,你可以按需选择:
方案一:通过Git全局配置实现凭证映射(推荐,最灵活)
这种方法能让Git根据仓库URL或本地存储目录,自动切换对应的AWS账户凭证,长期使用非常省心。
方式1:按仓库URL前缀匹配
- 打开终端,编辑你的全局Git配置文件:
open ~/.gitconfig - 在文件末尾添加以下配置,替换成你的实际信息:
比如旧账户的仓库都以[credential "https://git-codecommit.<你的AWS区域>.amazonaws.com"] UseHttpPath = true [credential "https://git-codecommit.<你的AWS区域>.amazonaws.com/v1/repos/<旧账户仓库前缀>"] username = <旧账户的HTTPS凭证用户名> password = <旧账户的HTTPS凭证密码> [credential "https://git-codecommit.<你的AWS区域>.amazonaws.com/v1/repos/<新账户仓库前缀>"] username = <新账户的HTTPS凭证用户名> password = <新账户的HTTPS凭证密码>legacy-开头,新账户以new-开头,就可以把<旧账户仓库前缀>设为legacy-*,这样所有旧账户的仓库都会自动用旧凭证,新的用新凭证。如果没有统一前缀,也可以指定单个仓库的完整路径。
方式2:按本地仓库目录匹配
如果你习惯把不同账户的仓库分开存储(比如旧账户放~/code/aws-old/,新账户放~/code/aws-new/),可以用目录匹配的方式:
- 同样编辑全局
.gitconfig:open ~/.gitconfig - 添加以下内容:
[includeIf "gitdir:~/code/aws-old/"] path = ~/.gitconfig-aws-old [includeIf "gitdir:~/code/aws-new/"] path = ~/.gitconfig-aws-new - 分别创建两个账户的独立配置文件:
- 创建
~/.gitconfig-aws-old,写入旧账户的凭证:[credential "https://git-codecommit.<你的AWS区域>.amazonaws.com"] username = <旧账户HTTPS用户名> password = <旧账户HTTPS密码> - 创建
~/.gitconfig-aws-new,写入新账户的凭证:[credential "https://git-codecommit.<你的AWS区域>.amazonaws.com"] username = <新账户HTTPS用户名> password = <新账户HTTPS密码>
- 创建
方案二:修改OSX钥匙串凭证
你之前旧账户的凭证已经存在钥匙串里,系统默认会用它访问所有CodeCommit仓库,导致新账户的仓库因为权限问题被提示「不存在」。可以通过钥匙串单独为新账户仓库添加凭证:
- 打开「钥匙串访问」应用,搜索关键词
git-codecommit,找到旧账户的凭证条目。 - 点击左上角的「新建密码项」:
- 账户名称:填入新账户的HTTPS凭证用户名
- 密码:填入新账户的HTTPS凭证密码
- 网站:填入新仓库的完整CodeCommit URL(比如
https://git-codecommit.us-east-1.amazonaws.com/v1/repos/my-new-repo)
- 保存后,当你访问这个新仓库时,系统会优先匹配这个特定URL的凭证,不会再用旧账户的凭证干扰。
临时测试小技巧
如果只是临时需要克隆新账户的仓库,可以直接在URL里携带凭证(不推荐长期使用,避免密码暴露在命令行历史):
git clone https://<新账户用户名>:<新账户密码>@git-codecommit.<你的AWS区域>.amazonaws.com/v1/repos/<新仓库名>
最后提醒:如果之前克隆新仓库失败过,记得先删除本地的错误仓库目录,再重新尝试,确保Git使用新的凭证访问。
内容的提问来源于stack exchange,提问作者Swordfish
相关产品推荐
相关产品推荐

