我但願mercurial從存儲庫的當前狀態中刪除多個文件。 可是,我但願文件存在於之前的歷史記錄中。 spa
如何forget
和remove
不一樣,他們能夠作我想要的嗎? 線程
從文檔中,您顯然可使用任一命令將文件保留在項目歷史記錄中。 看起來你想刪除,由於它也從工做目錄中刪除文件。 版本控制
來自http://hgbook.red-bean.com/read/上的Mercurial書: code
刪除文件不會影響其歷史記錄。 重要的是要理解刪除文件只有兩個效果。 它從工做目錄中刪除當前版本的文件。 它阻止Mercurial從下次提交時開始跟蹤對文件的更改。 刪除文件不會以任何方式改變文件的歷史記錄。 rem
手冊頁hg(1)說這是關於忘記: 文檔
標記指定的文件,以便在下次提交後再也不跟蹤它們。 這僅從當前分支中刪除文件,而不是從整個項目歷史記錄中刪除文件,而且不會從工做目錄中刪除它們。 get
這個關於刪除: io
安排指定的文件以從存儲庫中刪除。 這僅從當前分支中刪除文件,而不是從整個項目歷史記錄中刪除。 file
' hg forget
'只是' hg remove -Af
'的縮寫。 來自' hg remove
'幫助: bug
...和-Af可用於從下一版本中刪除文件而不從工做目錄中刪除它們。
底線:' remove
'從磁盤上的工做副本中刪除文件(除非您使用-Af
),' forget
'不會。
若是對具備「A」狀態的文件使用"hg remove b"
,這意味着它已被添加但未提交,Mercurial將響應:
not removing b: file has been marked for add (use forget to undo)
這種反應很是明確地說明了刪除和遺忘之間的區別。
個人理解是"hg forget"
用於撤消添加但未提交的文件,以便版本控制不跟蹤它; 而"hg remove"
用於從版本控制中取出一個已提交的文件。
此線程有一個示例,用於對7種不一樣類型狀態的文件使用hg remove
。
能夠跟蹤或不跟蹤文件,使用hg add跟蹤文件和hg remove或hg忘記取消跟蹤它。 使用沒有標誌的hg刪除將刪除文件並取消跟蹤它, hg忘記只是取消跟蹤它而不刪除它。
把最好的辦法是, hg forget
是相同的hg remove
除了它葉子中的文件, 你的工做副本後面。 這些文件做爲未跟蹤文件留下,如今能夠選擇使用.hgignore
的模式進行忽略。
換句話說,當我從你那裏拉出來時,我沒法判斷你是否使用了hg forget
或hg remove
。 當我更新到該變動集時,您將 hg forget
運行的文件將被刪除 - 就像您使用了hg remove
。