背景
公司项目的代码,原托管于gitee企业版,为了节约成本,决定不再续费gitee企业版,直接在公司华为云服务器上搭建git私服,迁移所有代码。
由于有的代码库,分支较多,笨的方法就是把所有分支都先拉取到本地,然后再切换每个分支,推送到新的远程代码库,这种费时费力的方法对于一个程序员来说,是不能这么干的。所以需要快速的实现备份和迁移,请看下文:
正文
0、git私服搭建使用gitblit,此处略过。
1、克隆代码
git clone 旧地址
2、拉取所有分支(先转到目录)
git branch -r | grep -v '\->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; done
git fetch --all
git pull --all
3、修改远程地址
git remote set-url origin 新地址
4、推送所有分支
git push --mirror
通过以上1-4步骤,就可以快速把某个代码库(分支多)快速的实现迁移。
若要实现多个仓库的迁移,可以把以上命令写成脚本执行。