[Version-control] hg forget和hg remove有什麼區別?


Answers

最好的方法是, hg forget hg remove 相同除了它將文件留在工作副本中。 這些文件.hgignore未跟踪文件,現在可以選擇使用.hgignore的模式忽略。

換句話說,當我從你身上拉下來時,我無法判斷你是否使用了hg forgethg remove 。 當我更新到變更集時,您運行hg forget文件被刪除 - 就像您使用hg remove

Question

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

如何forgetremove不同的東西,他們可以做我想要的東西嗎?




如果您對具有“A”狀態的文件使用"hg remove b" ,這意味著它已被添加但未提交,則Mercurial將響應:

  not removing b: file has been marked for add (use forget to undo)

這個回應是清除和遺忘之間差異的非常明確的解釋。

我的理解是, "hg forget"是為了撤銷已添加但未提交的文件,以便它不被版本控制跟踪; 而"hg remove"用於從版本控制中提取已提交的文件。

這個thread有一個使用hg remove對7種不同類型的狀態文件的例子。