这是我参与8月更文挑战的第6天,活动详情查看:8月更文挑战
前言:vue项目开发过程中,遇到一些问题需要重新切换分支开发,在不影响当前开发的情况下,当然也可以在原有分支上开发,发布完之后在新建一个分支将代码和过去,从新接着开发之前的项目模块,我这边是采用第二种方式,还在研究怎么新建master发布分支上的分支,也就是不需要合并我现在当前开发的一些提交代码!
业务情形:一期线上问题,需要立马修复发布线上,中断当前二期开发模块,发布线上的代码尽量不能包含现有二期开发内容,因为调试和测试原因,为了不影响线上的正常使用!
1.先拉取所有分支代码
git fetch
2.查看远程所有分支
git branch -r //确保远程分支是创建成功存在的
3.先创建并切换分支
这里创建切换只实现了本地分支的创建和切换,并未和远程分支建立联系
git checkout -b origin/feature/20210819_10466022_onlinebug_1
4.将修改代码推到git仓库
一般问题就出在这个环节,一个是如果你在本地原有代码项目上切换分支,push的时候会发现你之前提交的所有commit的代码全都出现了,需要一起push这样就相当于是混入了二期新代码,我觉得应该可能是要从新clone一个项目单独开发,在原项目上切换,可能是vscode项目提交记录的存在,会默认让你一起合并当前的项目所有代码,具体这个问题还在研究当中....(有结果了我会更新这篇推文,请大家收藏关注)
//mac笔记本命令窗口
zhangsan@zhangsanMacBook-Air nodejs %
git push --set-upstream origin feature/20210819_10466022_onlinebug_1
push代码报错如下
To http://gitlab.alibaba.zhangsan.git
! [rejected] feature/20210819_10466022_onlinebug_1 -> feature/20210819_10466022_onlinebug_1 (non-fast-forward)
error: failed to push some refs to 'http://gitlab.alibaba.zhangsan.git'
//更新被拒绝
hint: Updates were rejected because the tip of your current branch is behind
//需要集成远程的分支代码pull,然后再push
hint: its remote counterpart. Integrate the remote changes (e.g.**
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
5.先集成远程仓库该分支下的代码
git pull origin feature/20210819_10466022_onlinebug_1
这个时候又会出现一个问题,就是你先前创建的本地分支未和远程分支做关联,git仓库拒绝了集成代码的请求,提示你先关联(--set-upstream)
fatal: The current branch feature/20210819_10466022_onlinebug_1 has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin feature/20210819_10466022_onlinebug_1
6.先关联本地分支和远程分支
git push --set-upstream origin feature/20210819_10466022_onlinebug_1
7.再去pull和push代码就正常了
前面的问题还在研究,如果有小伙伴有解决方案,可以私信我学习学习,职场小白感激不尽