[英]Moving in-flight work from Git branch and move it to a topic branch
如果我要拥有一个如下所示的git分支:
-- A -- B -- C -- D -- E --
与当前时间更近的提交可能没有更改早期提交中的文件。
我希望我的存储库在清理后看起来像这样。
-- A -- B -- D -- E -- \\-- C --
基本上,我正在从一种SCM工具(AccuRev)迁移到git。 我们有四个代表环境的流。 每个流都是继承的。 Prod > pre-prod > QC > Dev
可能存在QC中不在Prod中的变更包,依此类推。 由于历史记录在AccuRev中的工作方式,我们只能迁移一个流,因此随着历史记录的细化,我们将在开发流上迁移。 因此,我们将把AccuRev dev流映射为Git中的主分支(以及生产构建的来源,因此它必须稳定)。
我正在寻找从git master分支中删除进行中的工作并将其移至主题分支的最佳方法。
请记住,一次迁移包含迁移完成后的主要更改。
要将提交C
从master
分支移动到topic
分支,可以使用以下命令:
git checkout topic
git cherry-pick <commit id for C>
git checkout master
git rebase -i master~4
~4
代表您要从HEAD重新设置多少个提交
在交互式窗口中,将commit C
更改为drop
:
pick B
drop C
pick D
pick E
现在,提交C
从master
移到topic
分支。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.