Mercurial – 如何从版本控制中删除文件?

所以我不小心将一个configuration文件(每台机器不同)放入我们的mercurial仓库。

我怎样才能让Mercurial不包含在版本控制中? 我不想删除该文件,因为我仍然想要它。 而且我不想让文件在其他开发者的工作目录上被删除。

我如何在TortoiseHG中做到这一点?

右键单击文件 – > TortoiseHG – >忘记文件。 点击忘记。 提交和同步。

编辑:您还需要将path添加到.hgignore以防止再次添加。 您可以右键单击HG提交对话框中的文件并select忽略它。

以下是通过命令行执行的手动方式:

  1. 将configuration文件复制到存储库之外的某个位置。
  2. 运行hg rm path/to/config/file
  3. 将configuration文件path添加到.hgignore
  4. 提交存储库。
  5. 将configuration文件移回原来的位置。
  6. 对你的仓库做一个hg stat ,仔细检查你做的一切正确。 (它不应该显示在修改/添加的文件列表中)。

编辑

hg forget是做到这一点的最好方法。

  1. 运行hg forget path/to/config/file
  2. 编辑.hgignore并将path添加到configuration文件。
  3. hg ci保存您的更改。
  4. 运行hg stat以确保一切按计划进行。

看到如何做TortoiseHG nates的答案。

hg remove或者hg remove -f ? 我认为, hg forgethg forget了从分支。

在这两种情况下,文件都保留在您的目录中。

对于那些使用SourceTree的人来说 ,当你右键单击一个文件时,有一个选项Stop Tracking ,它基本上和hg forget或者git rm --cache ,从repo中删除文件,而不是从硬盘中删除。

将其添加到您的忽略列表中。

请参阅.hgignore文件。

TortoiseHG使您可以通过“编辑忽略filter”菜单选项访问此configuration文件。