[英]Git : Merge a branch again after a revert
请考虑以下git树:
local repo:
C---D---E feat
/ \
A---B---F---G---H---I dev
origin remote repo:
C---D---E feat
/ \
A---B---F---G---H dev
我们有一个git repo,带有一个远程的源。 有一个来自dev的分支,称为feat,在提交几次后便合并回dev。 问题在于feat分支对dev分支进行了很多修改,并带来许多冲突,因此我们决定以feat源代码为准,并在合并时使用-X
选项。 我们过快地检查了结果,然后将其推到遥控器上。 但是我们犯了一个错误,在合并时使用-Xours
而不是-Xtheirs
,因此所有冲突都是使用dev分支代码而不是feat分支代码自动解决的。 所有这些都被推到了起源。 这是H提交。
我在当地所做的是git revert HEAD
,这给了我我承诺撤消为H提交。 从那里,我尝试再次合并feat分支,使用正确的-Xtheirs
选项,并且git告诉我树已经是最新的,但是feat分支中的修改未出现在源代码中。
我试图从一个壮举,一个救援分支中分支出来,然后将其合并到开发人员中,但是它做了同样的事情。 我尝试在feat分支上进行一些小的更改,然后合并到dev中,但是只有这些小的更改才进入dev。
所以这是我的问题:我如何才能将专长分支中完成的工作恢复为开发人员?
我只是想让开发人员回到过去,然后重试合并:
git checkout dev
git reset --hard G # provide sha1 of the revision of G... and use with care, you know what they say of git reset hard
git merge -Xtheirs feat # this is what you wanted to do, right?
git push origin -f dev # set remote dev to have the rewritten history of local dev
Git允许您重写历史记录。 如果有影响(修订版本完全不同,因此您实际上是在分歧。...如果其他人已经在旧分支上工作,那么他们将不得不将工作移到新分支之上,依此类推...这是可能的)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.