11

是否有可能有一个本地 Mercurial 忽略文件?显然 .hgignore 是一个与任何其他文件一样版本化的文件。我可以在版本化的文件旁边放一个这样的文件吗?

4

3 回答 3

23

是的,您可以配置一个本地的、每个用户的忽略文件。该文件的位置和名称在用户特定的.hgrc配置文件(通常位于用户的主目录)下定义[ui],例如:

[ui]
ignore = ~/.myhgignore

此文件应与存储库范围.hgignore文件的格式相同。

参考:http ://www.selenic.com/mercurial/hgrc.5.html#ui

于 2012-10-08T14:30:57.783 回答
12

这里有几种情况,因此根据情况,您将有不同的可能解决方案:

  1. 如果文件或目录尚未添加,并且没有.hgignore文件,您可以:
    • 用于.hgignore过滤它,并且
    • .hgignore如果这对其他人也有用(例如,*.o 等),您可以提交,或者您可以将其保留.hgignore为本地而不提交/推送它,在这种情况下,您甚至可以按照 msw 的说明指定.hgignorein.hgignore以便您的本地版本也将被忽略。
  2. 如果尚未添加文件或目录,并且.hgignore由于某种原因您不想使用某个文件(提交和推送),您可以:
    • 声明一个未跟踪的忽略文件,您将像使用它一样使用.hgignore它,但它将保持在本地。您可以在您的仓库.hg/hgrc或全局中声明此未跟踪的忽略文件$HOME/.hgrc(请参阅UI 部分文档)。
  3. 最后,如果文件/目录已添加到跟踪文件列表中,则不能使用 : 过滤它.hgignore:任何已提交的文件都不能被忽略!您可以:
    • hg forget”文件(与“ hg add”相反),然后按照前两种情况执行,或者使用“ -X”选项作为.hg/hgrc配置文件中 status/diff/commit 的默认值,例如,
      [defaults]
      status = -X file1 -X file2
      diff = -X file -X file2
      commit = -X file -X file3
      这将告诉 hg 不要在使用 status、diff 和 commit 时包含这些文件。

希望它会有所帮助。

于 2012-10-09T09:11:32.500 回答
1

您也可以.hgignore在本地存储库中忽略:

$ hg clone some_repository
$ cd some_repository
$ cat > .hgignore
syntax: glob
.hgignore
$ touch foo.c bar.c
$ hg status
? foo.c
? bar.c

.hgignore请注意,在 的输出中明显没有局部hg status

于 2012-10-08T19:39:23.687 回答