我经常担心我的 hgignore 文件可能会排除重要文件。例如,我刚刚注意到我排除了所有 .exe 文件,这些文件排除了一些应该与源代码一起保存的小可执行工具。将它们包括在内是一个简单的更改,但让我担心这些规则可能会产生意想不到的后果。
有没有办法查看由于文件而没有被跟踪的所有文件的列表.hgignore
?这样我就可以定期查看列表以检查我是否满意。
该命令hg status -i
正是这样做的。
@Jon 用正确的答案击败了我,但它一文不值status -i
,还有:
hg status -m
(仅修改过的文件)hg status -a
(仅添加的文件)hg status -r
(仅删除的文件)hg status -d
(仅限已删除的文件)hg status -u
(所有未跟踪的文件)hg status -c
(没有更改的文件,即“干净”)hg status -A
(所有文件,即一切)如果要对文件名进行手动检查-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()"
安排删除找到的文件(在您的工作副本中留下一个副本)。
是的,有可能。如果你正在使用 TortoiseHg 之类的东西,你可以选择你想看的文件。
这是一个示例