在嘗試使用「汞承諾--amend」功能的變化在回購提交消息...汞提交修改創建新的分支機構
我創建命名爲「hg_amend」新的分支和我有承諾進行一些更改並推送回購。我再次需要做一些與之前提交相關的更改。所以我做了一些更改&嘗試使用'hg add','hg commit --amend','hg phase --draft --force'來添加文件。和'hg push -f'。
之後,我檢查了bitbucket,新的分支創建相同的頭。
高級謝謝!
在嘗試使用「汞承諾--amend」功能的變化在回購提交消息...汞提交修改創建新的分支機構
我創建命名爲「hg_amend」新的分支和我有承諾進行一些更改並推送回購。我再次需要做一些與之前提交相關的更改。所以我做了一些更改&嘗試使用'hg add','hg commit --amend','hg phase --draft --force'來添加文件。和'hg push -f'。
之後,我檢查了bitbucket,新的分支創建相同的頭。
高級謝謝!
雖然沒有在你的問題沒有實際的問題,我會asume這兩個:
爲什麼有兩個頭?
如何才能改變這種情況,只有一個頭?
1)的答案很簡單:您已發佈變更集。您的bitbucket存儲庫被配置爲發佈存儲庫(這是默認設置),因此推送到那裏的所有更改集都變得不可變,因此公共階段,無論是在bitbucket回購站還是在本地回收站。您無法更改已推送到該存儲庫的任何變更集。使用hg push --force
只確保你實際上可能推動新的頭到回購,並且你願意說'再見'到你試圖推新頭時通常得到的警告。使用mercurial,push命令是嚴格追加的(與git不同,在強制執行錯誤提交時,它可能是批量重建工作的道路)。
2)的答案現在更加困難,並且有幾種選擇。可能最簡單的方法是使用bitbucket接口並去除您在上次提交時推送的所有變更集,並刪除您嘗試修改的變更集。然後再次嘗試推送。現在應該修復它。
我不是100%確定bitbucket的當前功能。我聽說它(仍然)不支持交換過時標記,因此這種情況很難避免。但是,它允許將存儲庫設置爲不發佈,並支持階段。因此,如果您的默認階段也是草稿,則階段不會在推送時更改。並且要麼避免修改已經推送的變更集。或者你修改並關閉現在已經過時的頭與原始changesetID - 那麼它應該至少不會顯示在bitbucket了。