背景:
原有项目A(vue2.6),需要在A的基础上接入组件库,涉及到项目升级,领导不想走这条路,建议重新构建一版2.7的项目B,那么现在就需要把项目B与项目A远程到同一个仓库;
解决方案:
在远程和本地仓库中新建一个分支(我建的是dev-v4.8.5-ab);
删除远程dev-v4.8.5-ab分支上的所有文件;
将新项目的文件推送到dev-v4.8.5-ab上。
操作步骤:
1、新建一个文件夹(我的是yh)
创建git本地仓库并关联远程仓库
文件夹下打开终端命令,执行以下命令
git init
git remote add origin git@github********.git
2、建立远程仓库分支 dev-v4.8.5-ab(我在github上创建的)
注意,建立远程分支后,暂时还不能在本地建立其他分支,因为刚创建的git仓库默认的master分支要在第一次commit之后才会真正建立,这时创建其他分支会报错。
git branch dev-v4.8.5-ab
3、随便新建一个文件,里面可以不用写任何东西,然后commit
touch clearTheBranch
git add clearTheBranch
git commit -m'clean this branch'
推送之前先更新(下面的代码是最核心的代码)
新建的分支默认与master分支一样,所以要在推送之前先把分支上的内容拉下来。
git pull origin dev-v4.8.5-ab
报错!原因是本地仓库和远程仓库不一样,有类似两者有完全不相同的commit历史,只需要在在pull的同时加上一行代码即可,代码如下:
git pull origin dev-v4.8.5-ab --allow-unrelated-histories
这步操作的时候,会有merge的commit说明,简单写下,这个只是merge的说明,并不会真正和mater合并。
经过这一步操作,就已经把远程仓库dev-v4.8.5-ab分支里面的文件都拉下来了,接下来建立与远程仓库对应的本地分支。
5、建立并切换到本地分支 dev-v4.8.5-ab
git checkout -b dev-v4.8.5-ab
删除本地仓库里的所有文件(除了.git的文件夹),然后推送。
Mac电脑的话,显示隐藏文件,则可以看到.git文件(快捷键shift+command + .), 推送到远程;
git add .
git commit -m'removeAllFiles'
git push origin dev-v4.8.5-ab
这个时候,远程仓库的laravel54分支便和本地仓库的laravel54分支一样都是空白的,这样就可以随心所欲的推送了。
6、新项目推送
这时就可以把之前的项目拷进这个文件夹里面,然后按照正常的推送流程进行推送。
我是把本地搭建好的vue脚手架,复制到该文件夹,但是隐藏文件未复制成功,项目一直报错,一定记住隐藏文件一并托过来!!
参考文章:Git多分支平行发展