`hg forget`与`git rm --cached`相同?

时间:2010-11-09 15:27:20

标签: git mercurial dvcs

我很难理解hg forget。它与git rm --cached相同吗?即将使用下一次提交删除文件并停止跟踪它?

1 个答案:

答案 0 :(得分:9)

hg forget告诉mercurial停止跟踪文件,但不会改变工作目录中的文件。

提交后,它的行为就像你从未做过hg add一样(尽管当然历史仍然存在)。新克隆在其工作目录中不会包含该文件,但它不会在您的工作目录中删除。

如果你想在workingdir / manifest中有一个文件,但是想要忽略未来的更改,那么就没有简单的方法(因为它通常被认为是一个坏主意),尽管你可以通过使用别名来伪装它-I上的hg commit

更好的方法是在repo中提交所需文件的样本但要忽略其更改,然后让构建系统(或您的指令)将其复制到非样本位置。例如,在repo中跟踪文件config-file.sample,然后如果cp config-file.sample config-file不存在则设置/安装/构建执行config-file。在config-file中添加.hgignore,以免意外添加。这为您提供了跟踪基线,但不会冒险提交和推送您的本地自定义。这通常用于数据库路径等。