我经常担心我的hgignore文件可能会排除重要文件。例如,我只注意到我排除了所有的.exe文件,这些文件排除了一些应该与源代码保持一致的小型可执行工具。将它们包括在内只是一个简单的改变,但让我担心这些规则可能会产生意想不到的后果。如何检查哪些文件因.hgignore而被忽略?
有没有办法查看由于.hgignore
文件而未被跟踪的所有文件的列表?只是这样我才能定期查看清单以检查我是否满意。
我经常担心我的hgignore文件可能会排除重要文件。例如,我只注意到我排除了所有的.exe文件,这些文件排除了一些应该与源代码保持一致的小型可执行工具。将它们包括在内只是一个简单的改变,但让我担心这些规则可能会产生意想不到的后果。如何检查哪些文件因.hgignore而被忽略?
有没有办法查看由于.hgignore
文件而未被跟踪的所有文件的列表?只是这样我才能定期查看清单以检查我是否满意。
命令hg status -i
正好如此。
是的,这是可能的。 如果您使用的是像TortoiseHg这样的smth,您可以选择您想查看的文件。
下面是一个示例
@乔恩打我用正确的答案冲,但它没有价值,随着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
这将照顾正确处理空间 - 用-0
,是有风险您最终会将ignored file.exe
视为两个文件:ignored
和file.exe
,因为shell通常在空间上分割。
以上命令将告诉您未匹配的文件匹配.hgignore
。如果你想解决发现跟踪文件匹配.hgignore
的相关的问题,那么你就需要使用fileset query。这看起来是这样的:
$ hg locate "set:hgignore()"
您可以使用文件集与操作文件的所有命令,这样你就可以,例如做:
$ hg forget "set:hgignore()"
安排(发现去除文件同时抄送左在你的工作副本后面)。
打败了我,因为我太忙于输入其他字符来满足最低字符要求:) _“身体必须是30个字符,你输入28”_ –
@BurhanKhalid:我也有过这个问题...教训: “如果有疑问,请详细说明”;) – Jon
总是使用--long选项给出答案。更好的教学。 :) –