您可能应该使用:
git ls-remote ssh://git@git_repo:port
没有任何后缀,因为它默认列出所有内容。
您可以使用:
git ls-remote ssh://git@git_repo:port '*'
(或者双引号也一样——其中一个或两个也可以在 Windows 上工作)。在 Unix/Linux 风格的命令 shell 中,shell将在运行命令之前替换*为当前目录中所有文件的列表,除非您保护星号不受 shell 影响。
您还可以使用单个反冲:
git ls-remote ssh://git@git_repo:port \*
因为有很多方法可以保护单个字符免受 shell 的影响。规则有点复杂,但一般来说,单引号是“最强大”的引号,而双引号引用glob字符1而不是其他扩展。2 如果您尚未在引号内,则反斜杠会引用紧接的下一个字符(双引号内的反斜杠行为在某些 shell 中会有所不同)。
1全局字符是*、[和?。之后[,glob 中的字符运行到结尾]。因此echo foo[abc]查找名为fooa、foob和的文件fooc。注意.一般不特殊:foo.*只匹配名称以 开头的文件foo.,即包括句点:一个文件名foo不以 开头foo.,只以foo,不匹配。
Glob 与正则表达式非常不同:在正则表达式中,.匹配任何字符(就像?在 glob 中一样),星号表示“重复先前的匹配零次或多次”,因此 glob*和正则表达式.*相似。(在正则表达式匹配中,我们还需要考虑表达式是否被锚定。globs 总是被锚定的,这样就不会出现问题。)
2大多数扩展都使用美元符号$,如$varor ${var}or $(subcommand),但反引号也调用命令替换,如echo `echo bar`.