我需要在不克隆 repo 的情况下接收有关修订、文件更改和更改的代码行数的数据,我唯一拥有的是 repo url。我发现用于查看远程更改的唯一命令是 git ls remote,但它的输出太差了。我该怎么做?
最佳答案
仅使用 Git 协议(protocol)无法完成您要求的操作。
根据存储库的托管方式,您可以通过 web interface 获取一些信息。 . gitweb与 Git 一起分发,大型托管服务通常有自己的 Web 界面。
- gitweb 示例:git.git viewing commit tagged 1.7.3.2
- 热门链接
- “log”或“shortlog”显示导致提交的历史
- “commitdiff”访问与父级的差异
- merge/parent 缩写对象名称(十六进制字符串)移动到该父级
- 父级链接
- “差异”链接显示与该父项的差异
- “提交”链接移动到该父节点
- “树”链接显示提交中捕获的文件
- 每个文件的链接
- “diff”( merge 时的“diffN”)仅显示该文件的差异
- “blob”显示文件的内容
- “history”显示导致修改此文件的当前提交的提交
- 热门链接
- GitHub 示例:git.git viewing commit tagged 1.7.3.2
- “提交”选项卡显示历史记录
- “commit”/“parent”缩写对象名称(十六进制字符串)将您带到提交;表明
- 为该提交更改的文件
- 右边的绿色和红色方 block 显示了每个文件中添加/删除的行数
- 提交的差异
- “查看文件”显示了在该提交中捕获的整个文件
- “原始”查看/下载文件
- “blame”显示最近一次更改此文件每一行的提交
- “历史”显示导致更改此文件的当前提交的提交
- “查看文件”显示了在该提交中捕获的整个文件
- 为该提交更改的文件
- “commit”/“parent”缩写对象名称(十六进制字符串)将您带到提交;表明
- “提交”选项卡显示历史记录
如果您打算在历史上进行任何重要的挖掘,那么克隆存储库可能是值得的(如果托管服务没有某种网络界面)。您将不得不使用一些磁盘空间,但您的调查将不限于 Web 界面提供的内容,而且速度会快得多。
另一种可能性是 git archive ;它是一个可选服务器,因此它可能不会为托管您的存储库的服务器启用。它允许您下载单个树的文件(例如 tar 或 zip 文件)。从技术上讲,您可以提取此类存档并手动比较它们以获取您想要的信息,但这可能比仅克隆存储库和使用普通工具(即 git log
)更麻烦且效率更低使用 --stat
或 --numstat
有或没有 -m
/-c
/--抄送
).
关于Git 远程日志和变更请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4288598/