【发布时间】:2010-11-26 21:18:46
【问题描述】:
我需要在不克隆 repo 的情况下接收有关修订、文件更改和更改的代码行数的数据,我唯一拥有的是 repo url。我发现用于查看远程更改的唯一命令是 git ls remote,但它的输出太差了。我该怎么做?
【问题讨论】:
-
如果不克隆存储库,我认为您无法做到这一点。
标签: git
我需要在不克隆 repo 的情况下接收有关修订、文件更改和更改的代码行数的数据,我唯一拥有的是 repo url。我发现用于查看远程更改的唯一命令是 git ls remote,但它的输出太差了。我该怎么做?
【问题讨论】:
标签: git
仅使用 Git 协议无法完成您要求的操作。
根据存储库的托管方式,您可以通过web interface 获取一些信息。 gitweb 与 Git 一起分发,大型托管服务通常有自己的 Web 界面。
如果您打算在历史上进行任何重要的挖掘,那么克隆存储库可能是值得的(如果托管服务没有某种网络界面)。您将不得不使用一些磁盘空间,但您的调查将不仅限于 Web 界面提供的内容,而且速度会更快。
另一种可能性是git archive;它是一个可选服务器,因此它可能没有为托管您的存储库的服务器启用。它允许您下载单个树的档案(例如 tar 或 zip 文件)。从技术上讲,您可以提取此类档案并手动区分它们以获取您所追求的信息,但这可能比仅克隆存储库和使用普通工具(即 git log 和 --stat 或 @ 987654328@ 有或没有-m/-c/--cc)。
【讨论】:
如果您的存储库 URL 用于 ssh 类型的连接,那么您可以通过 ssh 发出远程日志命令,例如
如果您可以使用以下命令进行克隆:
git clone username@host:/path/to/repository.git
那么您应该可以使用以下命令发出日志命令:
ssh username@host git --git-dir /path/to/repository.git log
【讨论】:
如果你可以访问服务器,你可以在服务器本地运行 git log,解析数据并返回聚合结果。
【讨论】: