git - 如何修复重新定位、强制推送并合并到其他人本地的分支中的历史记录?两次?
问题描述
在我们的组织中,我们是git rebase
我们的分支机构。我们会定期 rebasemaster
以保持最新状态,git push --force-with-lease
然后让任何其他开发人员知道。
开发人员 A 正在与开发人员 B 在一个分支上合作。开发人员 B 重新基于 master 并强制推送分支。
开发者 A 犯了一个错误,继续工作,当他尝试推送时,他似乎遇到了冲突,并将重新建立的分支合并到他的本地,然后推送。
没有人注意到,几天后他又做了一次。
因此,现在 git 历史记录包含两到三次相同的提交,对于 rebase 来说是一场灾难master
。
有没有办法解决这个问题?
最好创建一个新分支master
并挑选非重复提交?在重复的情况下,选择哪个提交是否重要?
解决方案
最好从 master 创建一个新分支并挑选非重复提交?
“最好”总是很棘手,但这是一个好方法。
在重复的情况下,选择哪个提交是否重要?
如果它们确实是重复的,则不会。但是,如果他们做了一些稍微不同的事情——例如,如果一个是来自具有合并冲突的 rebase 或 cherry-pick 的副本,并且是手动解决的——他们可能“基本相同,但略有不同”,然后会很重要。
构建一个全新分支的好处是,你可以在最后验证它是否做了它应该做的任何事情,并且它的最终提交和当前的最终提交之间的区别只是无论你期望什么不同。同时,原始的提交系列很容易获得。
推荐阅读
- android - Android Studio 没有构建完整的文件
- google-cloud-platform - 如何在 Google Cloud Platform 上的 Compute Engine 中使用环境变量?
- libcurl - Adobe 括号未在 lunix 上安装
- javascript - 如何使用 JAVASCRIPT 调用 ETH 美元价格
- javascript - 如何验证我的 MaterializeCSS 表单,如果选择中的第一个值 - 不要发送表单并显示错误?
- java - 为什么多个图像选择在少数设备而不是所有设备上都有效?
- react-native - 将 ScrollView 中的 Pull-To-Refresh 与 React Native 中的 Redux 集成
- emacs - emacs连接slime时不断轮询,提示内部错误文件“../src/pathname”在6115行
- c# - 如何以共享库的形式异步返回函数的进度
- smarty - 如何在 shopwares 产品详细信息页面中添加一个表格,其中列出了该产品的所有可用变体?