Git错误合并

时间:2019-01-17 08:36:36

标签: git gitkraken

我解释了这个问题

这是我的实际git

enter image description here

我的合并有问题,在与蓝色分支合并的过程中,将忽略在红色分支中还原的文件。

基本上,我们开始在红色分支上开发功能,然后决定更改分支,为使红色分支“纯净”而没有错误,我们还原了该功能的初始更改。

根据我们已经在红色分支上所做的工作,我们继续在蓝色分支上使用该功能。

文件重命名/删除和更改很多。

现在,当我合并蓝色和红色时,一半的更改不会保留,甚至不会发生冲突。

我用我们想要的恰好做了另一个分支(我们称它为紫色),我想知道有一种方法可以将紫色分支推入红色分支,以准确保留紫色中的内容分支

1 个答案:

答案 0 :(得分:1)

修复red分支(历史不会更改):一种方法是还原revert-commit-1revert-commit-2,然后将blue分支合并到red分支。

$ git checkout red   # checkout to 'red' branch
$ git log            # copy the 'revert-commit-2' & 'revert-commit-1' commit hash

$ git revert <revert-commit-2-hash>
$ git revert <revert-commit-1-hash>

$ git pull origin blue              # merge the blue branch changes

另一种方式:用red分支替换当前的purple分支(red分支历史将被更改)

# first backup the 'red' branch for just safety
$ git checkout red
$ git branch red.bac

# replace red branch with purple branch
$ git checkout purple
$ git branch -D red    # delete 'red' branch
$ git checkout -b red  # create & checkout to new local 'red' branch with 'purple' branch history

# now if you pushed the 'red' branch already then you need to do force (-f) push otherwise do normal push
$ git push -f origin red