问题背景:
项目中有两个分支: test、master
比如有a文件: 在test和master分支 内容是不相同的
执行以下命令
git checkout master
git merge test
合并的时候有冲突,处理冲突时错误地用了master分支的a文件内容,所以造成master分支的a文件内容不是我想要的,想要的是test分支的a文件内容。
尝试1:
再次merege
执行如下命令
git checkout master
git merge test
此次merge的时候没有冲突提示,但是master分支的内容也没更新上,提示为已经是最新代码。
尝试2
在master分支上基础上新建一条master-bugfix分支,然后在master-bugfix分支更改a文件内容。然后执行如下git命令
git checkout master
git merge master-bugfix。
问题解决。
但是尝试2不够优雅,新增了一条新的分支且可能会有其它未预期的问题。
疑问:
- 为什么第二次合并,master分支的a文件内容没有更新;
- 除了尝试2,还有其它更好的方法处理这种情况吗?
1,因为第一次合并已经解决过冲突合并过了,第二次合并如果文件没有修改就不会再合并了。
2,可以使用git reset --hard commitID 重置到第一次合并前的位置,然后再合并。