git - 从源分支移动提交,但在目标分支将被合并回来时保留它们?
问题描述
我们开始在 dev 分支中开发一个特性,但意识到这需要更长的时间,所以我们在开发过程中创建了一个特性分支来进行剩余的更改。
dev 分支中的提交不连续。我们希望恢复那些在 dev 分支上的提交,以便在没有任何功能分支代码的情况下准备发布。
我们有这个:
A--Fa--B--Fb--C--D--E--F--G <-- dev
\
Fc--Fd--Fe <-- feature
我们想要这个:
A--B--C--D--E--F--G <-- dev
\
Fa--Fb--Fc--Fd--Fe <-- feature
这很容易通过恢复 dev 分支上的Fa
,Fb
提交来实现。但是,到了合并特性分支的时候,git 会抱怨吗?
A--B--C--D--E--F--G--H-- <-- dev
\ /
Fa--Fb--Fc--Fd--Fe <-- feature
答案似乎是肯定的......我想知道是否有办法避免这种情况?
这个问题几乎正是我要问的——但我的提交并不连续。这有关系吗?
我不能(轻易)重写历史——但我想这是可能的(只有 2 个其他开发人员拥有存储库)。
解决方案
在我看来,您可以硬重置您的开发分支以提交 A。然后您可以在那里启动一个新功能分支,然后为两个分支选择适当的提交。完成对提交的挑选后,删除旧的功能分支。我想你会优雅地达到你想要的状态。
推荐阅读
- python - 如何根据 django 中的相同键值将列表转换为 json
- android - 打开键盘时按钮不出现
- reactjs - 反应原生:标题标志,标题和底部导航
- unit-testing - Chef rspec - 如何处理 open.file?
- java - imageView.setVisibility(View.GONE); 不适用于 ImageView
- docker - 如何从 docker 容器中捕获应用程序监控信息
- sql - 如何检查浮点数后real是否有任何数字
- python - 尝试创建 conda 环境时 ResolvePackageNotFound
- scala - Vec 可以在 Chisel 中减少吗?
- vue.js - 如何在 Vue 中使用 slot 获取数据?