[英]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.