问题背景

我有一个分支a改了两个文件,提交上去了,
然后有一个分支b改了a其中的一个文件,提交上去了。

然后和master的时候a先进行和入了。这个时候b再和入就会有冲突,我们在本地merge解冲突,在b分支会带上a分支的那次commit的所有代码,

解决过程

只提交冲突的代码

和入的时候会把别人新的代码变成自己老的代码,更坑

使用rebase

也会把不是自己更新的提交上去,而且还不能解决冲突。

master分支解决冲突

想到一个解决办法,如果b有冲突,a先和入了,我直接在master解决冲突提交上去。

实验一下可行,直接切换到master分支上,然后merge b分支代码解决冲突,然后再提交上去,就不会显示之前没有修改的代码的提交,但是问题解决是解决了,但是和我们开发工作流不一样,我们之前都是分支开发,云端合并master,现在成了直接往master提交代码了。

b分支解决冲突,但是提交到master

这样直接在b分支mergemaster,然后向master提交会触发冲突,因为本地的和master的是同父节点改的,这个时候需要使用rebase来解决冲突

git fetch origin

git rebase origin/master

git add -u // 添加被修改的文件

git rebase --continue

git push 到master

这样就可以解决这个问题了。但是这个还是直接向master提交代码了。

以上都是分支开发主干发布流做的

09-29 03:52