在开发中,会遇到服务器地址迁移的问题,开发中的所有项目就需要从一个git地址移到另一个git地址,例如一个iOS项目的一种方案:从原始远程A下载到本地,然后由本地上传到新的远程B;具体步骤:
1. 项目会有多个分支,要保证拉取到本地是所有的分支,又要保证上传到新的远程的是所有的分支;
2. 克隆项目到本地:git clone https://github.com/...;
3. 克隆完成后,进入项目,然后git branch,发现只有一个master分支,这是,只是克隆了一个master分支,然后执行:git pull --all ,发现还是老样子,那么这时需要来一个大招;
4. 大招为:git branch -r | grep -v '\->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; done
git fetch --all
git pull --all,
执行完成后,git branch 发现有个所有的分支,此时,拉取到本地的工作算是完成了;
5. 上传到新远程B: 需要添加新的源,目前的源可以查看:git remote 或者git remote -v;
6. 添加新的源需要新的名称,一般旧的名称是origin, 那么新的名字随便取一个,之后可以修改,例如取名为:aorigin;
7. 连接新的源:git remote add aorigin https://github.com/...,此https://github.com/...连接是新的地址,此时查看:git remote 发现了新建的源;
8. 推送所有的分支到新的远程: 如果此时执行:git push -u aorigin master,也只是推送了一个master分支,此时需要这样:git push -u aorigin --all,然后查看新的远程的分支数目;
9. 移除旧的源:git remote rm origin;
10. 修改新源的名称:git remote rename aorigin origin;
11. 检查源,并且拉取和推送测试一下,如果正确,则成功。
12. 如果遇到新的源连接不上的问题,则检查ssh,或者它配置不正确。
网友评论