git merge后不合并与产生冲突,而是直接替换掉。

浏览:45日期:2023-08-22

问题描述

1.正式环境有仓库,但是当时同事为了方便,直接打了个包再测试环境进行开发了,现在开发完,新开发的这个部分没有纳入版本库。不知道如何合并。

2.我现在基于dev分支,创建了一个new的分支,并将之前没有纳入版本库的文件,直接替换掉new分支下的文件,并add commit。

3.我现在又基于dev分支,又创建了一个dev2的分支,切换到dev2下,merge new分支,发现merge过程中文件并没有合并与产生冲突,而是删除了dev2下的文件,新建了new分支下的那些文件。

劳烦大家如果遇到类似的问题,请指点下。谢谢!

问题解答

回答1:

两个问题。

你说的 “新开发的部分” 指的是哪个部分?

你现在需要把 dev2 变成什么样?

回答2:

可以试试git cherry-pick命令,可以把某个commit合入到某个分支。

回答3:

git merge 实际会把你当前 dev2分支 最后的工作节点,new分支 最后的节点和他们共同的父节点做一次三方合并,new分支 相较于他们的共同节点相当于变更了全部文件,而 dev2分支 并没有变化,所以 git 会选择自动 merge 替换掉 dev2 上的文件

按照你的说法,你的同事应该是只调整了部分功能,可以考虑是用 git difftool 来手动合并两个分支

相关文章: