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 status
git add test_behand_merge.py
git commit -m "测试:当前分支落后主分支 --> 创建临时分支并合并到dev分支"
git push

第五步:将开发分支(eature/dev)合并到主分支(origin)
切换到主分支:
git checkout origin

我们会发现还是还是不是指向最新的提交,OK,没有关系,我们让Git指向最新的提交:
git checkout master

我们会发现当前分支落后origin/master4个提交,OK,pull一下
# 记得pull一下
git pull

这个时间就可以做最终的合并了:
git merge feature/dev

最后push一下就ok了。
更多推荐


所有评论(0)