我不明白你的問題,因爲你切換(不含引號)分支,即使它們沒有命名分支,當你使用書籤時它們仍然是分支。
你有這個錯誤是一個誠實的錯誤,我看不出有水銀保護你從再做使用書籤(標記不同的書籤一樣轉,並與一個錯誤犯)的方式。我可以告訴你,儘管是怎麼做私人地方分支與水銀,這樣一來,你就可以避免你剛後果:
您使用名爲分支機構和相位
Mercurial Phases是真的甜心,讓我快速解釋他們。您可以將修訂標記爲三個稱爲階段的特殊狀態,其中包括:祕密,草稿和公開。
- 祕密:別被推。可以通過歷史編輯進行修改。
- 草稿:被推送。可以通過歷史編輯進行修改。這是任何修訂的默認狀態。
- public:推送。使用歷史編輯擴展名時會發出警告(strip,rebase,histedit,...)。
如前所述,所有本地修訂是默認草案,當你推他們,他們成爲公共。您可以使用hg phase
命令來標記對特定階段的修訂,但是如果您正在從#3到#2或從#2到#1(根據之前的編號),則需要使用-f參數來強制的變化,這就是:
祕密 - >草案 - >公共
要轉到左邊,你需要使用--force或-F。
這裏是你要做的:現在
hg branch experiment
hg commit -m "Opening experimental branch" //say this creates revision 123
hg phase -sf tip //s is for secret, f is for force
//... hack hack hack
hg commit -m "Uh oh screwed up here"
hg push //no secret revisions are pushed
,你可以放棄該分支,離開它就像這樣,它不會永遠得到推動。忘記它,甚至關閉它,以便它不會打擾你,當你列出你的分支機構。它不會被推到它不會被列出,所以只是不要擔心它。
但是,如果你有強迫症,只是帶(hg strip
)的分支在那裏打開提交的分支,它消失了:
hg strip 123
如果你有一個已經存在的一個分支,可以逐步同時多次修改如下:
hg phase <start revision>::<end revision> -sf
爲了讓你的祕密分支草案或公衆,只是逐步的最新修訂,這些階段:
hg phase -d tip //assuming you are in the experiment branch
然後推,分支將公開。
Mercurial在歷史修改方面日益變得越來越好,但並沒有改變它的勸阻性普遍理念。階段是爲了保護你免受意外的歷史修改,以及分享你不意味着什麼。
如何* I *使用書籤
就個人而言,我使用書籤進行調試和時,我想嘗試2種不同的做一件事情的方式。 對我來說,當你想做匿名分支時,書籤很有用(更新到以前的版本,提交和分叉歷史記錄),但想讓事情變得清晰可辨。
@MarkBooth我沒有意識到這一點。投票結束並標記主持人注意加快進程 – Earlz