本文主要是介绍git合并分支时当前分支落后于主分支,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 问题重现:
- 解决思路:
- 实现:
- 第一步:根据主分支(origin)代码在本地创建新的临时分支,命名为temp
- 第二步:将临时分支(temp)合并到开发分支(feature/dev)
- 第三步:解决合并后的冲突
- 第四步:提交开发分支(feature/dev)并push到远程仓库
- 第五步:将开发分支(eature/dev)合并到主分支(origin)
问题重现:
我们平时开发的时候都是从主分支创建分支,然后将该分支拉取到本地进行开发,开发完成以后再将此分支合并到远程主分支。
但是一般而言,我们都是整个团队在开发,等开发完了,需要合并到远程分支的时候,远程分支已经有很多次提交(commit
)了,自己的分支已经落后主分支很多版本,切换回主分支的时候就不在最新commit
上:
git checkout origin
那么这个时候应该怎么办呢?
解决思路:
假设当前开发的分支名为:feature/dev
根据主分支(origin
)代码在本地创建新的临时分支,命名为temp
将临时分支(temp
)合并到开发分支(eature/dev
)
解决合并后的冲突
提交开发分支(feature/dev
)并push到远程仓库
后将开发分支(feature/dev
)合并到主分支(origin
)
实现:
第一步:根据主分支(origin)代码在本地创建新的临时分支,命名为temp
# 获取远程仓库origin主分支的最新代码
git fetch origin
# 根据主分支创建一个临时分支
git checkout -b temp origin
我们可以看到dev分支与temp分支是不一样的
第二步:将临时分支(temp)合并到开发分支(feature/dev)
# 可以先看下开发分支与临时分支的差别
git diff feature/dev temp
# 切换到开发分支
git checkout feature/dev# 合并临时分到开发分支
git merge temp
我们可以看到在for_test/test_behand_merge.py
文件中有代码冲突,我们需要解决冲突后再进行下一步的操作
第三步:解决合并后的冲突
解决冲突后是这样的:
第四步:提交开发分支(feature/dev)并push到远程仓库
我们现在可以看下Git的状态:
解决冲突后提交一下:
git statusgit add test_behand_merge.pygit commit -m "测试:当前分支落后主分支 --> 创建临时分支并合并到dev分支"git push
第五步:将开发分支(eature/dev)合并到主分支(origin)
切换到主分支:
git checkout origin
我们会发现还是还是不是指向最新的提交,OK,没有关系,我们让Git指向最新的提交:
git checkout master
我们会发现当前分支落后origin/master
4个提交,OK,pull一下
# 记得pull一下
git pull
这个时间就可以做最终的合并了:
git merge feature/dev
最后push一下就ok了。
这篇关于git合并分支时当前分支落后于主分支的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!