Mercurial中是否有一条命令会列出当前受源代码控制的所有文件?
我可以dir /s
列出所有文件夹和子文件夹中的文件,但是我不知道已将其添加到存储库中。我有各种排除的文件类型和文件夹,我想在.hgignore文件中进行设置之前确认没有添加任何文件和文件夹。
Answers:
hg status --all
将列出树中的所有文件,并用字母表示其状态:M表示修改,C表示清理(归hg拥有),I表示忽略。
对于只是被忽略的文件,请使用hg status -i
。对于仅在下次提交时添加的文件,请使用hg status -a
。这些仅显示您需要了解的内容,不需要扫描较长的文件列表。
hg st -A
是上述命令的缩写形式。
hg status -c
仅列出所有跟踪的文件。进行其他更改,hg status -carmd
将达到目的。添加-n
以排除状态标志。
您也可以签出hg locate
命令。-I
当我想将文件限制到某个目录时,我会使用它以及该选项。
列出存储库中的所有文件:
hg locate
从存储库(“根”)目录中:
hg locate -I dir/sub_dir/dir_of_interest
传递的路径-I
需要根据运行命令的目录进行更改。如果从上例中的dir
目录运行命令,则需要修改参数以找到:
hg locate -I sub_dir/dir_of_interest
输出文件列表将保持不变,显示存储库中每个文件的完整路径。
尝试hg help -v locate
获取更多信息。
hg loc
是上述命令的缩写形式。
hg locate
,可以使用以下命令自动获取当前目录hg locate -I `pwd`
。
hg locate
。hg status -i
将仅列出被忽略的文件。hg status -a
将仅列出那些将由提交添加的内容。随着hg locate
有用户错误的调和你,你所期望的列表,请参阅列表中的相当大的风险。hg locate
在任何/所有修订版本中搜索特定文件名的地方都非常有用。同样,hg grep
还将搜索所有/所有修订版本中的所有文件内容。
要仅列出被忽略的文件,请执行:hg status -i
。
对于刚刚添加的文件,请执行hg status -a
。
如果您不想输入太多内容,可以将其缩短为hg sta -i
和hg sta -a
。
的这两种用法status
比更为简单,locate
并且将为您提供您所关注的特定文件状态,因此错误发生的可能性大大降低。
hg status
要列出商品回购中的所有文件,请执行以下操作:hg status --all
。
列出文件时,将在文件之前添加前缀:
M = modified
A = added
R = removed
C = clean
! = missing (deleted by non-hg command, but still tracked)
? = not tracked
I = ignored
如果仅列出文件夹中的文件,则可以提供路径:
hg st --all MyFolder
– MyFolder中的所有文件hg sta -i MyFolder
–只是忽略了MyFolder中的文件。除了-i
“已忽略”和-a
“已添加”外,其他标志也可用于仅列出具有特定状态的文件。
help
在此处阅读另一个非常有用的答案,以获取对该status
命令的全面说明。它之所以遭到否决,是因为作者试图通过向Mercurial询问如下status
命令来表明您可以发现上述所有内容:
hg help status
您可以要求Mercurial告诉您任何这样的命令。如果要获取Mercurial的命令列表,请键入hg help
。
C:\>汞帮助-v状态 汞状态[OPTION] ... [FILE] ... 别名:st 在工作目录中显示更改的文件 显示存储库中文件的状态。如果给出名称,则仅文件 显示该匹配项。干净或忽略的文件或文件的来源 复制/移动操作,除非-c /-clean,-i /-忽略, -C /-副本或-A /-全部给出。除非用“显示”描述的选项 仅给出...”,使用选项-mardu。 选项-q /-quiet隐藏未跟踪(未知和忽略)的文件,除非 使用-u /-unknown或-i /-ignore显式请求。 注意:如果权限已更改,状态可能似乎与diff不同 或发生合并。标准差异格式不报告 权限更改和差异仅报告相对于一次合并的更改 父母 如果给出一个修订,则将其用作基本修订。如果两个 给出了修订,并显示了它们之间的差异。改变 选项还可以用作列出已更改文件的快捷方式 从其第一父级修订。 用于显示文件状态的代码为: M =修改 A =已添加 R =已移除 C =干净 !=丢失(由非hg命令删除,但仍被跟踪) ?=未追踪 我=被忽略 =列为A的前一个文件的来源(已添加) 选项: -A --all显示所有文件的状态 -m --modified只显示已修改的文件 -a --add仅显示已添加的文件 -r --removed仅显示已删除的文件 -d --deleted仅显示已删除(但已跟踪)的文件 -c --clean仅显示未更改的文件 -u --unknown仅显示未知(未跟踪)文件 -i --ignored仅显示忽略的文件 -n --no-status隐藏状态前缀 -C-副本显示复制文件的源 -0 --print0带有NUL的结尾文件名,用于xargs --rev显示与修订版本的差异 --change列出修订的已更改文件 -I-包括与给定模式匹配的名称 -X-排除与给定模式匹配的名称 全局选项: -R --repository存储库根目录或覆盖捆绑文件的名称 --cwd更改工作目录 -y --noninteractive不提示,对于任何需要的答案均假设为“是” -q-安静抑制输出 -v --verbose启用附加输出 --config设置/覆盖配置选项(使用'section.name = value') --debug启用调试输出 --debugger启动调试器 --encoding设置字符集编码(默认值:cp1252) --encodingmode设置字符集编码模式(默认值:严格) --traceback总是在出现异常时显示回溯 --time时间命令花费的时间 --profile打印命令执行配置文件 --version输出版本信息并退出 -h --help显示帮助并退出
--help
/ /?
/man
和其他文件,因为它是更快地问计算器上比读什么书?我拒绝删除我的回答:)
status
,因为其中一个hg
命令实际上首先会执行此操作。我每天都使用Mercurial,但我不知道它可能会被要求显示被忽略的文件。
--all
)甚至不在屏幕上(您必须滚动才能看到它)。而且您实际上在任何地方都没有提供实际的语言来实现目标。总体而言,不是很有帮助。为了进行比较,Benjohn首先给出所需的命令,然后提供解释。