Mercurial:斬首



Answers

我知道你現在不想在分支機構工作,這很好,但這正是你所做的。 當你回到早期版本並提交了一些工作時,你創建了一個分支 - 一個未命名的分支,但是一個分支都是一樣的。

沒有任何問題,只是像現在一樣繼續進行,不必擔心有多個頭,但如果你想整理一些東西,所以你不會意外地挑錯頭,那麼你可以殺掉舊的分支。

Mercurial文檔中有一個很好的部分介紹了Pruning Dead分支的各種選項。

我認為對您來說最好的選擇是將舊分支標記為“關閉”。 如果你的老頭是修訂版“123”,那麼:

hg update -r 123
hg commit --close-branch -m 'Closing old branch'
hg update -C default
Question

有一個提交不起作用,所以我想放棄它而不從歷史中刪除它。

我已經從早期版本更新並承諾,從而創建了一個新的頭。

我沒有分支機構,我不想分支機構,我只想簡單地繼續與新的腦袋一樣,沒有什麼花哨,沒有融合,沒有後顧之憂,只是繼續忘記前一個。

我似乎無法找到如何做到這一點,而我開始相信這是無法完成的。 我發現的全部是關於分支的東西,或者關於合併的東西。




尼爾和尼克的答案都是直接的。 因為我發現自己製造了很多懸空的頭顱,所以我最終寫了一個別名來更容易地關閉頭部。 通過將這添加到您的.hgrc

[alias]
behead = !REV=$($HG id -i); $HG update $@ -q && $HG ci --close-branch -m "Closing dead head" && $HG update $REV -q

(如果你已經有一個[alias]部分,你可以添加它)

您現在可以通過一個單一命令關閉一個頭(而不必手動更新到其他變更集),如下所示:

$ hg behead 123

注意:別名利用了Mercurial別名可以是shell命令的事實。 這意味著這可能只適用於UNIX,而不適用於Windows。




你想使用hg backout 。 這會從任何子變更集中刪除變更集所做的更改。

檢查這一點是一個很好的解釋。 水銀退出






Links



Tags

mercurial