背景是前几天进行项目git仓库拆分,对一些现有的git仓库修改,对现在使用的一个项目迁移到另一个仓库中。问题是这个仓库是N久之前建立的,有一些旧的代码。本地的项目还有N多个分支。迁移的目的很明确,将现有的代码的分支进行合并,然后推送到新的git仓库。
因为是头一次做这件事儿,所以走了一条弯路,我先是简单的给本地仓库更换新的地址git remote set-url origin [远程仓库地址]
这样本地仓库已经完成了迁移?是不是可以愉快的继续了呢?因此我们先把新的远程仓库里的代码pull
一下吧;
报错!gitThere is no tracking information for the current branch
这是因为本地分支和远程分支没有建立联系,根据提示
git branch --set-upstream-to=origin/master master
这样两个仓库建立了关联,pull
一下,冲突是肯定的,因为我的项目缘故,我是用本地文件解决的冲突,解决冲突后,把本地的分支合并一下吧:
-
git branch
查看分支; - 切换成本地的master分支
git checkout master
git merge [待合主干的分支名]
git add .
git commit -m 合主干
git push
到这里仓库的迁移似乎完成了,下面开始解决历史遗留问题吧——删除多余的本地/远程分支:
git branch -d [待删除本地分支名]
git branch -r
git push -d origin [待删除远程分支名]