能否将AWS CodeCommit的Git仓库Fork到GitHub?本地配置遇阻求助
当然可以实现!不过AWS CodeCommit并没有直接一键Fork到GitHub的功能,咱们得通过本地Git仓库作为中转来完成,下面给你两种常用的解决思路,你可以根据自己的需求选择:
方法1:一次性迁移仓库到GitHub(适合不需要后续同步的场景)
如果只是想把CodeCommit的代码一次性搬到GitHub,后续两边不需要同步,用这个方法最省心:
- 第一步:把CodeCommit仓库完整克隆到本地
用HTTPS方式的命令(替换成你的AWS区域和仓库名):git clone https://git-codecommit.<你的AWS区域>.amazonaws.com/v1/repos/<CodeCommit仓库名>
如果你平时用SSH连接CodeCommit,也可以用对应的SSH地址克隆。 - 第二步:在GitHub上创建一个空仓库
注意不要勾选「Add a README file」「Add .gitignore」这些初始化选项,避免和本地仓库冲突。 - 第三步:给本地仓库添加GitHub作为远程仓库
命令如下(替换成你的GitHub用户名和新建仓库名):git remote add github https://github.com/<你的GitHub用户名>/<GitHub仓库名>.git - 第四步:推送所有代码到GitHub
先确保本地拉取了CodeCommit的全部分支:git fetch origin
然后推送所有分支到GitHub:git push github --all
如果仓库里有标签,也可以一起推送:git push github --tags
方法2:设置双向同步(适合需要两边持续同步代码的场景)
如果你需要在CodeCommit和GitHub两边都提交代码,并且保持同步,可以用这个方案——你之前设置上游没成功,大概率是没理清远程仓库的关系,咱们一步步来:
- 第一步:先完成方法1的前3步(克隆CodeCommit仓库、创建GitHub空仓库、添加GitHub远程)
- 第二步:分别管理两个远程仓库的同步
假设你把origin默认设为CodeCommit,github设为GitHub:- 从CodeCommit同步到GitHub:先拉取CodeCommit的最新代码(以主分支
main为例):git pull origin main
确认本地代码最新后,推送到GitHub:git push github main - 从GitHub同步回CodeCommit:先拉取GitHub的最新代码:
git pull github main
遇到冲突的话,一定要在本地仔细解决冲突,确认没问题后再推送到CodeCommit:git push origin main
- 从CodeCommit同步到GitHub:先拉取CodeCommit的最新代码(以主分支
- 关键注意点:
- 不要用
--force强制推送,除非你明确知道自己在做什么,否则很容易覆盖两边的代码 - 如果两边分支名不一样(比如CodeCommit用
master,GitHub用main),推送的时候要对应好分支名,比如git push github master:main
- 不要用
你之前设置上游失败可能的原因排查
如果之前尝试设置上游没成功,可以检查这几点:
- 是不是远程仓库地址输错了?可以用
git remote -v查看所有远程地址,确认GitHub的地址正确 - 是不是只推送了主分支,没处理其他分支?用
git branch -a查看本地和远程的所有分支,确保要同步的分支都存在 - 是不是分支名不匹配?比如本地分支是
master,但GitHub默认是main,推送时没指定对应关系
内容的提问来源于stack exchange,提问作者bmilesp
相关产品推荐
相关产品推荐

