18

我经常担心我的 hgignore 文件可能会排除重要文件。例如,我刚刚注意到我排除了所有 .exe 文件,这些文件排除了一些应该与源代码一起保存的小可执行工具。将它们包括在内是一个简单的更改,但让我担心这些规则可能会产生意想不到的后果。

有没有办法查看由于文件而没有被跟踪的所有文件的列表.hgignore?这样我就可以定期查看列表以检查我是否满意。

4

4 回答 4

29

该命令hg status -i正是这样做的。

于 2012-09-03T09:16:57.930 回答
14

@Jon 用正确的答案击败了我,但它一文不值status -i,还有:

  • hg status -m(仅修改过的文件)
  • hg status -a(仅添加的文件)
  • hg status -r(仅删除的文件)
  • hg status -d(仅限已删除的文件)
  • hg status -u(所有未跟踪的文件)
  • hg status -c(没有更改的文件,即“干净”)
  • hg status -A(所有文件,即一切)
于 2012-09-03T09:28:43.843 回答
10

如果要对文件名进行手动检查-i/--ignored,请使用标志状态:

$ hg status -i
I ignored file.exe

如果您想要单独的文件名,则使用-n/--no-status来抑制I打印在每个文件名前面的状态代码:

$ hg status -n -i
ignored file.exe

如果您需要使用处理文件xargs,请另外使用该-0/--print0标志:

$ hg status -n -0 | xargs -0 touch

这将负责正确处理空格 - 使用 using -0,您最终可能会将其ignored file.exe视为两个文件:ignored并且file.exe因为 shell 通常会在空格上拆分。

上面的命令显示了匹配的未跟踪文件.hgignore。如果要解决查找跟踪文件匹配.hgignore的相关问题,则需要使用文件集查询。看起来像这样:

$ hg locate "set:hgignore()"

您可以将文件集与对文件进行操作的所有命令一起使用,例如,您可以执行以下操作:

$ hg forget "set:hgignore()"

安排删除找到的文件(在您的工作副本中留下一个副本)。

于 2012-09-05T20:58:28.757 回答
4

是的,有可能。如果你正在使用 TortoiseHg 之类的东西,你可以选择你想看的文件。

这是一个示例

在此处输入图像描述

于 2012-09-03T09:20:13.550 回答