我正在使用BRANCH_A。我想將這個分支上的最後50個提交移動到一個新的分支BRANCH_B,並在這之前將BRANCH_A恢復到之前的提交。實現這一目標的最佳方法是什麼?這是一個好方法嗎?重命名hg分支並移植選擇性更改
0
A
回答
0
假設你只是想BRANCH_A是在「HEAD - 50個提交」的狀態,如果這些提交出現在歷史上你不關心,那麼這裏有一個簡單的解決辦法:
對於具備全部犯下的一個新的分支BRANCH_B,你可以簡單地創建這個分支,而在BRANCH_A的HEAD:
$ hg branch BRANCH_B
有關BRANCH_A恢復以前的狀態,你可以切換回BRANCH_A的HEAD,並提交一個新的變更即會撤消所有你不想要的,這是用hg退出:
$ hg update BRANCH_A
$ hg log -r 'branch(BRANCH_A) and head()~50 and not merge()'
$ hg backout -r 'branch(BRANCH_A) and head()~50 and not merge()'
$ hg commit -m"removed from .. to .."
如果在類似區域發生更改,則可能會發生衝突。
如果您確實想要重寫歷史記錄,您可以使用rebase或轉換擴展名來更改名稱,刪除提交等。這一切都取決於您是僅在本地工作還是需要推送到使用的服務器由其他人也是如此(在這種情況下,不建議重寫歷史記錄)。
+0
順便說一句,你的命令集是錯誤的(3/5)爲OP的任務 –
0
沒有編輯歷史,簡單地說:
- 關閉BRANCH_A一角。
- 在BRANCH_A的封閉式尖端上創建一個名爲BRANCH_B。
- 在50次提交之前從節點開始檢入新的提交到BRANCH_A。
相關問題
- 1. Hg + Eclipse - 爲移植過濾更改集
- 2. Hg命名分支Errant Commit Clean
- 3. HG更新需要分支合併
- 4. Git - 從舊分支移植到HEAD的更改
- 5. 重命名屬性名稱並更改多個對象的值
- 6. 在hg中,如何在重新綁定和/或從另一個repo移植時刪除分支名稱?
- 7. 重命名分支並將「新建」分支推送到遠程
- 8. 如何選擇*並重命名列?
- 9. Mercurial:將單個更改合併到未命名的分支中
- 10. 重命名目錄時將更改集應用到分支
- 11. 追溯重命名分支?
- 12. 在Gitkraken重命名分支?
- 13. 重命名遠程分支
- 14. 在git上重命名遠程分支並更新日誌
- 15. 移動並重命名MainPage.xaml
- 16. Git - 選擇性分支
- 17. 選擇第一類並更改屬性
- 18. Mac OSX命令hg分支名稱自動完成
- 19. 如何在mercurial中導出(hg檔案)命名分支?
- 20. 移動合併提交回舊分支,恢復主分支並保持更改
- 21. 拆分分支在兩個分支/合併分支有選擇
- 22. 重複錶行,並更改輸入選擇名稱
- 23. 重命名本地GIT分支不會更改'Origin'上的名稱
- 24. 在hg狀態下顯示重命名?
- 25. 如果在分支之間文件w /更改的路徑已更改,那麼如何反向移植更改?
- 26. 報告所有文件重命名並在Perforce分支中移動
- 27. 重命名/移動不同案例的分支文件夾
- 28. 選擇重新加載並更改其他選擇框的值
- 29. hg up <branch_name>不更改爲指定分支
- 30. hg:對另一個分支提交一些更改
「恢復到先前的承諾之前,這些」 ** **需要翻譯成正確的(相關的和有意義的)措辭 –