我很难理解hg forget
。它与git rm --cached
相同吗?即将使用下一次提交删除文件并停止跟踪它?
答案 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
,以免意外添加。这为您提供了跟踪基线,但不会冒险提交和推送您的本地自定义。这通常用于数据库路径等。