Mercurial:如何从被忽略的文件夹中添加文件?

时间:2015-04-03 06:36:44

标签: version-control mercurial hgignore

我在文件.hgignore中添加了一个文件夹,因此忽略了其中的文件(以及子目录中的文件)。但是,我刚刚将文件添加到被忽略文件夹的一个子目录中。如何将该文件添加到跟踪文件列表中?

我想这是使用GUI进行版本控制的缺点之一。我正在使用SourceTree并且没有直接接触Hg命令(尽管我已经启用了选项,以便在执行时显示命令并观察Hg在后​​台执行的操作) 。我试过谷歌搜索问题,但找不到任何相关的结果。

2 个答案:

答案 0 :(得分:4)

您可以通过显式添加来单独跟踪被忽略的文件。从.hgignore手册页:

  

可以使用hg add X显式添加未跟踪的文件X,即使X将被.hgignore中的模式排除。

您明确表示要添加此文件的意图会覆盖.hgignore中的偏好设置。

.hgignore的目的主要是在完全添加目录时忽略所包含的文件。

答案 1 :(得分:1)

您需要编辑您的存储库" .hgignore"文件并指定您希望忽略目录树,但此文件除外。例如,如果您具有以下结构:

└── a
    ├── b.txt
    └── c.txt

并且您想忽略除" c.txt"之外的所有内容,然后根据您可以拥有的.hgignore文件内容:

没有任何.hgignore文件:

$ hg status
? a/b.txt
? a/c.txt

使用一行来忽略" a"

下的所有内容
$ cat .hgignore 
syntax: regexp
^a/
$ hg status
? .hgignore

另外一行忽略了" a"但" c.txt"文件:

$ cat .hgignore 
syntax: regexp
^a/(?!c.txt).*
$ hg status
? .hgignore
? a/c.txt

希望它能提供帮助。