如何在一个被重新定位、强制推送并合并到其他人本地的分支中修复历史记录?两次?



在我们的组织中,我们git rebase我们的分支机构。我们定期重新绑定到master以保持最新状态,然后重新绑定git push --force-with-lease,然后让任何其他开发人员知道。

开发人员A正在与开发人员B合作开发一个分支。开发人员B重新部署到master上,并强制推送分支。

开发人员A犯了一个错误,继续工作,当他试图推送时,看起来他遇到了冲突,将重新建立的分支合并到了他的本地分支中,然后推送。

没人注意到,几天后他又做了一次。

因此,现在git历史包含两到三次相同的提交,将其重新绑定到master上是一场灾难。

有办法解决这个问题吗?

最好从master中创建一个新的分支并挑选不重复的提交吗?在重复的情况下,哪一个提交被精心挑选有关系吗?

最好从master中创建一个新的分支并挑选不重复的提交吗?

"最佳";总是很棘手,但这是一个很好的方法。

在重复的情况下,哪一个提交被精心挑选是否重要?

如果它们真的是重复的,那就不是。但如果它们做了一些稍微不同的事情——例如,如果其中一个是来自rebase或cherry pick的重复,它有合并冲突,并且是手动解决的——它们可能是";基本相同但略有不同";,然后这就很重要了。

构建一个全新分支的好处是,你可以在最后验证它是否做了它应该做的事情,并且它的最终提交和当前分支的最终提交之间的区别只是你期望的不同。同时,最初的一系列提交也很容易获得。

最新更新