最近跟其他公司一起开发项目,项目在gitlab上.因为自己公司这边恨不得半个月才合并一次…我就经常自己直接在gitlab上把分支合到自己分支上…上周被他们说不要合了…会多出来一堆没用的合并请求…最好本地自己合并…学了一下…怕自己忘记就留个备忘
说明
首先说明一下分支,
- 源分支 source 是最终部署分支,将两公司提交合并的分支,由于合并不及时,这里我要合并的就是这个分支
- 组分支 group 自己公司的分支,我们自己公司所有人公用的分支,我们也都提交到这个分支
- 个人分支 own 我自己的分支,这里是用来存放我将两边分支合并之后的代码.
注意这里最终合并的其实是[group]分支和[source]分支,合并结果push到[own]上
如果只是单纯合并[group]分支和[source]分支则不需要这个[own]分支作为最终结果,直接push到[group]即可
操作步骤
- (如果远程存在own分支,则删除)从group分支创建own分支
- 将项目
clone
到本地(如果项目已在本地,则直接执行下一步) git fetch origin own:local-own
将远程的own分支下载到本地的local-own分支上(这里如果本地已存在该分支,比如之前合并过什么的,可以切换到其他分支再删除该分支重新新建该本地分支,也可保留新建一个其他本地分支用来合并)git fetch origin source:local-source
将远程source分支下载到本地local-source分支上git checkout local-own
切换到本地的local-own分支上git merge local-source
将本地的local-source合并到本地的local-own分支上git status
查看文件状态,如果有冲突则解决- 解决之后就可以正常提交了
git commit -m [message]
git push origin local-own:own
将本地分支推送到远程分支,此时远程分支即是本次合并的结果啦- 需要注意的是,由于此时为了合并创建的本地分支没有与远程分支关联,所以拉取代码可能需要
git pull origin own:local-own
这样写明分支来拉取