1

一点背景:

代码库主分支

代码库的 dev 分支

两者都在进行中(我知道,但我刚开始这个项目,所以我不怪)

在某一时刻,dev 被错误地合并回 master,然后几次提交之后所有这些更改都被还原(手动,看起来像)

现在,我需要真正将 dev 合并回 master ,但是所有意外合并然后恢复的更改当然都丢失了。

除了在合并后手动进行更改之外,我不太确定在这里做什么。

有什么想法吗?

4

2 回答 2

1

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

于 2012-06-01T16:15:01.473 回答
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 推送到共享存储库并让其他开发人员知道,以便他们可以重新克隆或将更改拉入新分支等。确保在进行这些更改之前与团队协调很重要。

于 2012-06-01T17:18:27.373 回答