2012-08-25 84 views
14

修訂「公共」變更我想修改我的最後一次提交,但運行如何水銀

hg commit --amend 

給我

abort: cannot amend public changesets 

即使我知道,它的安全編輯變更集。我如何改變我最後一次提交的階段和/或告訴Mercurial修改是否安全?

回答

27

在Mercurial wiki上,有一個很好的overview of phases

要轉換電流從「公共」承諾「草案」爲了讓修正提交,使用

hg phase --draft --force . 

(或者,如果你想編輯不同的變更與另一個版本替換.)。

+0

將它推向上游仍然會產生兩次提交的歷史記錄,並且本地「hg日誌」也確認兩次提交 - 有沒有辦法解決這個問題?所以它只顯示修改的提交? –

+4

不,如果你推動了變更集,那麼你不應該修改它,這就是爲什麼HG阻止你這樣做的原因。 (在某些情況下,你知道它只被推送到你的另一個私人倉庫,在這種情況下,這個答案很有用。) –

+1

@Daniel Sokolowski,你可以使用撤消/回滾上游回購。但是你需要快速,並且在進一步將更改集推送到它之前執行此操作。 –