如果我有一个看起来像这样的git分支:
-- A -- B -- C -- D -- E --
接近当前时间的提交可能没有对先前提交的文件进行更改。
我希望我的存储库在清理后看起来像这样。
-- A -- B -- D -- E --
\-- C --
基本上,我正在从一个SCM工具(AccuRev)迁移到git。我们有四个代表环境的流。每个流都是继承的。
Prod > pre-prod > QC > Dev
质量控制中可能存在不在Prod中的更改包等等。
由于历史记录在AccuRev中的工作原理,我们只能迁移一个流,因此我们将通过dev流进行迁移,因为历史记录更精细。因此,我们将AccuRev dev流映射为Git中的主分支(生成构建将源于此,因此需要保持稳定)。
我正在寻找从git master分支中删除正在进行的工作并将其移动到主题分支的最佳方法。
请记住,一次提交包含迁移完成后的主要更改。
答案 0 :(得分:1)
要将提交C
从master
分支移至topic
分支,您可以使用以下命令:
git checkout topic
git cherry-pick <commit id for C>
git checkout master
git rebase -i master~4
~4
代表您想要从HEAD重新设置的提交数量
在交互式窗口中,将提交C
更改为drop
:
pick B
drop C
pick D
pick E
现在,提交C
已从master
移至topic
分支。