Mercurial hg ignore无法正常工作

时间:2013-03-29 08:37:51

标签: mercurial hgignore

情况

$ cat .hgignore
.hgignore

$ hg status
M file1
M file2
M src/project.xml

我不想跟踪project.xml所以我运行

echo "project.xml" >> .hgignore

,结果是

$ cat .hgignore
.hgignore
project.xml

$ hg status
M .hgignore
M file1
M file2
M src/project.xml

因此.hgignore现在已被修改,即使它不应被跟踪,project.xml也不会发生任何事情。这是什么意思?

1 个答案:

答案 0 :(得分:15)

您写道:

M src / project.xml”

表示src/project.xml受版本控制。 已经受版本控制的文件不能被忽略!该 .hgignore文件用于忽略未跟踪的文件(状态 会显示“”)。

您有两种方法可以忽略您的文件:

  1. 您可以“hg forget”文件,与“hg add”相反(即, 告诉Mercurial不要再跟踪这个文件了,或者
  2. 您可以使用“-X”选项作为status/diff/commit的默认选项 在.hg/hgrc配置文件中,例如,

    [默认]
    status = -X <file>
    diff = -X <file>
    commit = -X <file>

  3. 将告诉hg不要在使用status,diff和commit中包含此文件。