所以我们把一个git分支变得棘手了:
两个分支: * master * other_branch
上周有人不小心将other_branch(过早地)合并到master并推送到origin。我们注意到了错误,我天真地提交了
git revert bad_merge_commit
来“修复”问题。一切看起来都好像没问题,我们继续生活...
今天,我们试图将master合并到other_branch,作为将other_branch带入master的步骤。但是我的还原似乎引起了噩梦。当master合并到other_branch时,其他大部分工作都被删除了。我认为这是因为我的还原指示要还原所有旧的提交。
当然,现在在我的还原之上有许多天的提交,所以解决这个问题似乎会很困难。
有没有修复损害的方法?我可以使用一些rebase参数进入并删除两个有问题的提交吗?
非常感谢!
[更新 - 根据请求添加当前状态的详细信息]
other_branch 是一段时间以前从 master 分支派生出来的。我们的标准做法是在进行其他操作时重复将 master 合并到 other_branch 中,以尽量减少冲突的积累(有时我们会变基,但这种情况下不会)。
两个分支: * master * other_branch
上周有人不小心将other_branch(过早地)合并到master并推送到origin。我们注意到了错误,我天真地提交了
git revert bad_merge_commit
来“修复”问题。一切看起来都好像没问题,我们继续生活...
今天,我们试图将master合并到other_branch,作为将other_branch带入master的步骤。但是我的还原似乎引起了噩梦。当master合并到other_branch时,其他大部分工作都被删除了。我认为这是因为我的还原指示要还原所有旧的提交。
当然,现在在我的还原之上有许多天的提交,所以解决这个问题似乎会很困难。
有没有修复损害的方法?我可以使用一些rebase参数进入并删除两个有问题的提交吗?
非常感谢!
[更新 - 根据请求添加当前状态的详细信息]
other_branch 是一段时间以前从 master 分支派生出来的。我们的标准做法是在进行其他操作时重复将 master 合并到 other_branch 中,以尽量减少冲突的积累(有时我们会变基,但这种情况下不会)。
master 提交 A | B | C | BAD_MERGE [other_branch_@S] | REVERT_OF_BAD | D | E | F ... HEAD
other_branch 提交 P | Q | R | S [BAD_MERGE_FROM_HERE] | T | U | V ... HEAD
试图将 master HEAD 合并到 other_branch HEAD 时出现了问题。
Charles,我正在使用您在此处建议的解决方案,在 master 的副本上尝试修复:How to remove selected commit log entries from a Git repository while keeping their changes?。
[/ 更新]
master
合并到other_branch
导致的损坏,如果已经提交并推送。 - CB Bailey