2012-06-01 249 views
1

一点背景:代码库Dev分支的代码库Git的合并合并后,并恢复

主分支

两个正在上(我知道的工作,但我刚开始对这个项目,所以我不怪)

在一个点上,开发被误合并回主人,然后几个提交后所有这些变化恢复(手动,它看起来像)

现在,我需要将开发人员合并为真实的主人,但所有意外合并然后还原的更改当然都会丢失。

我不太知道该怎么办这里除了手工制作合并后的变化。

有什么想法?

回答

1

我会建议一个interactive rebase。删除恢复更改的提交并修复任何合并冲突。

+0

我试图避免重订,但它是很有道理的。这个问题实际上是首先导致这种情况的工作流程的缺乏,所以这是最好的解决方案。 – Jakanapes

1

大约GIT中的美妙的事情是它的灵活性,以及​​如何努力是实际删除的东西。

这里是接近的一种方式:

git checkout master 
git log (make note of all commits on master that you want which were done after the incorrect merge) 
git reset --hard <commit before dev was merged in in error> 
git cherry-pick <id's of commits previously identified> 
git merge develop (to do the desired merge) 

正如在其他答复中提到,互动,变基是一种选择了。您可以使用它来删除引入错误合并的提交以及恢复它的提交。

请注意,您可以改写历史,所以你将不得不推到与--force共享存储库,让其他开发人员知道这样他们就可以重新克隆或拉变化到一个新的分支等。确保在进行这些更改之前与团队进行协调非常重要。

+0

好主意,我喜欢挑选樱桃,但经过讨论后,团队正在进行rebase。不过,我一定会为未来保留这种方法 – Jakanapes