hg forget和hg remove有什麼區別?

我但願mercurial從存儲庫的當前狀態中刪除多個文件。 可是,我但願文件存在於之前的歷史記錄中。 spa

如何forgetremove不一樣,他們能夠作我想要的嗎? 線程


#1樓

從文檔中,您顯然可使用任一命令將文件保留在項目歷史記錄中。 看起來你想刪除,由於它也從工做目錄中刪除文件。 版本控制

來自http://hgbook.red-bean.com/read/上的Mercurial書: code

刪除文件不會影響其歷史記錄。 重要的是要理解刪除文件只有兩個效果。 它從工做目錄中刪除當前版本的文件。 它阻止Mercurial從下次提交時開始跟蹤對文件的更改。 刪除文件不會以任何方式改變文件的歷史記錄。 rem

手冊頁hg(1)說這是關於忘記: 文檔

標記指定的文件,以便在下次提交後再也不跟蹤它們。 這僅從當前分支中刪除文件,而不是從整個項目歷史記錄中刪除文件,而且不會從工做目錄中刪除它們。 get

這個關於刪除: io

安排指定的文件以從存儲庫中刪除。 這僅從當前分支中刪除文件,而不是從整個項目歷史記錄中刪除。 file


#2樓

' hg forget '只是' hg remove -Af '的縮寫。 來自' hg remove '幫助: bug

...和-Af可用於從下一版本中刪除文件而不從工做目錄中刪除它們。

底線:' remove '從磁盤上的工做副本中刪除文件(除非您使用-Af ),' forget '不會。


#3樓

若是對具備「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


#4樓

能夠跟蹤或不跟蹤文件,使用hg add跟蹤文件和hg remove或hg忘記取消跟蹤它。 使用沒有標誌的hg刪除將刪除文件並取消跟蹤它, hg忘記只是取消跟蹤它而不刪除它。


#5樓

把最好的辦法是, hg forget相同hg remove 除了它葉子中的文件, 你的工做副本後面。 這些文件做爲未跟蹤文件留下,如今能夠選擇使用.hgignore的模式進行忽略。

換句話說,當我從你那裏拉出來時,我沒法判斷你是否使用了hg forgethg remove 。 當我更新到該變動集時,您 hg forget運行的文件被刪除 - 就像您使用了hg remove

相關文章
相關標籤/搜索