【问题标题】:Search remote repository for file names/contents在远程存储库中搜索文件名/内容
【发布时间】:2018-10-10 18:02:51
【问题描述】:

是否可以在没有本地克隆的情况下搜索远程存储库中的文件?例如the clone URL for this project,我可以在主分支中搜索具有特定名称的文件吗?包含某个字符串的文件?

git-ls-remote 似乎是kind of close to what I want,但将其与git-ls-filesgit-grep 结合不起作用(SO post showing how to use these for the same task on a local instance of a repository

git ls-remote https://github.com/Vincit/objection.js.git ls-files '*/mixin.js'

只是返回命令提示符,根本不打印任何输出、错误或其他。

【问题讨论】:

    标签: git


    【解决方案1】:

    是否可以在远程存储库中搜索文件而无需在本地克隆文件?

    目前的简短回答是“否”。

    虽然ls-remote 看起来很有希望,但它只列出引用,而不是文件。

    您也不能以您尝试的方式组合 git 命令(除非所涉及的命令专门支持此类组合)。

    除了仅处理 refs 之外,尝试将 ls-remotels-files 结合起来的原因是,ls-files 命令行上的条目被 ls-remote 命令解释为将输出限制为仅返回匹配“ls-files”(或“*/mixin.js”)的引用。

    没有,所以没有输出。

    如果您担心存储库的大小,您需要 clone 以便在本地进行搜索,并且只对存储库的最新版本感兴趣,而不关心历史中可能存在的文件但不再存在等,您当然可以将clone 限制为最新版本,以避免克隆完整的回购和历史,使用--depth 参数例如:

    git clone --depth=1 https://github.com/Vincit/objection.js.git
    

    这并不能避免克隆,但它确实减少了这样做所涉及的工作量/时间。

    【讨论】:

      猜你喜欢
      • 2010-10-16
      • 1970-01-01
      • 2019-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-18
      • 1970-01-01
      相关资源
      最近更新 更多