您可以通过模拟Git已经内部执行的许多操作并且大量手动使用Git低级命令(plumbing)的方式来完成此操作。但是,如果您这样做,不仅需要自己处理很多底层操作,而且在所做的事情中效率非常低(不仅在第二次请求信息时如此)。因此,我建议您只需从存储库进行(高级)克隆,并以这种方式进行工作,即使该存储库仅存在于临时状态。例如,如果您只想查看最新提交,可以通过创建浅克隆(使用clone选项--depth)轻松限制克隆的内容。
ls-remote
仍然需要您拥有一个(本地的)存储库,该存储库具有对远程引用的引用。为了获得实际更新的信息,您需要首先从该存储库获取,并且此时与完全克隆的本地存储库没有区别。 - pokegit ls-remote <url>
可以在没有仓库的情况下工作。虽然如此,那些引用名称和SHA1值可能对你没什么帮助。 - Cascabells-remote
,无需先进行提取。但是,如果您需要类似日志消息的信息,据我所知仍需要提取本地副本。 - Htbaa