首页 > 解决方案 > 如何修复重新定位、强制推送并合并到其他人本地的分支中的历史记录?两次?

问题描述

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

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

开发者 A 犯了一个错误,继续工作,当他尝试推送时,他似乎遇到了冲突,并将重新建立的分支合并到他的本地,然后推送。

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

因此,现在 git 历史记录包含两到三次相同的提交,对于 rebase 来说是一场灾难master

有没有办法解决这个问题?

最好创建一个新分支master并挑选非重复提交?在重复的情况下,选择哪个提交是否重要?

标签: gitgit-rebasegit-merge-conflict

解决方案


最好从 master 创建一个新分支并挑选非重复提交?

“最好”总是很棘手,但这是一个好方法。

在重复的情况下,选择哪个提交是否重要?

如果它们确实是重复的,则不会。但是,如果他们做了一些稍微不同的事情——例如,如果一个是来自具有合并冲突的 rebase 或 cherry-pick 的副本,并且是手动解决的——他们可能“基本相同,但略有不同”,然后会很重要。

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


推荐阅读