git - 在 master 之上重新设置已合并的分支
问题描述
我遇到了以下问题。如图所示,我有两个 Git 分支(第一个:提交 E、C、B 和第二个:提交 D),从分叉并合并到主分支(F 和 A)中
我想将 D 放在 A 的顶部并将其从当前所在的位置删除。这有可能吗?
解决方案
我看到的唯一方法是将 master 重置为F
,将yellow
分支重置为E
,cherry-pickC
并B
在yellow
分支上,合并yellow
到master
最后 cherry-pick D
。
backup
在接触任何东西之前,您应该在当前状态下创建一个分支master
,以便在出现任何问题时能够重置到当前状态,并且可以轻松访问您需要挑选的提交 ID。命令序列将是这样的:
#on master branch, with no unstaged or uncommited changes:
git branch backup
git reset --hard F
git checkout yellow
git reset --hard E
git cherry-pick C
git cherry-pick B
#merge yellow branch into master, however you usually do that
git checkout master
git cherry-pick D
警告:未经测试。
正如我在评论中所说,如果有人已经在旧主人之上工作,这将把事情搞得一团糟。
编辑:如果是从toC
的合并提交,它显然不应该被精心挑选并且可以被忽略。D
yellow
推荐阅读
- javascript - select2用ajax创建标签
- reactjs - 使用 react-loader 自定义 webpack 配置的 React 代码拆分不起作用
- angular - 为什么 keydown 在与内联表达式一起使用时不允许我们输入文本
- prestashop-1.7 - 如何通过登录验证进入 prestashop 1.7.X 版本
- mysql - 如何编写更新查询以清除数据库中的选定数据?
- python - 如何在不使用机器人应用程序的情况下发送不和谐的消息
- wordpress - 节点无法访问 Wordpress Docker 容器 (var/www/html)
- flutter - 使用 device_preview 包在我的颤振应用程序中引发错误
- c++ - 智能指针与原始指针的兼容性
- java - 使用 java 库上传到谷歌云存储时设置对象类型