Git远程日志和更改请求

时间:2010-11-26 21:18:47

标签: git

我需要接收有关修订,文件更改和更改代码行数的数据而不克隆回购,我唯一拥有的是repo url。我发现用于查看远程更改的唯一命令是 git ls remote ,但它的输出太差了。我怎么能这样做?

3 个答案:

答案 0 :(得分:6)

没有办法只使用Git协议做你所要求的。

根据托管服务器的托管方式,您可以通过web interface获取部分信息。 gitweb随Git一起发布,大型托管服务通常都有自己的Web界面。


  • gitweb示例:git.git viewing commit tagged 1.7.3.2
    • 顶部链接
      • “log”或“shortlog”显示导致提交的历史记录
      • “commitdiff”访问父母的差异
      • merge / parent缩写对象名称(十六进制字符串)移动到该父级
    • 每个父链接
      • “diff”链接显示针对该父级的差异
      • “commit”链接移至该父级
    • “tree”链接显示提交中捕获的文件
    • 每个文件链接
      • “diff”(合并的“diffN”)仅显示该文件的差异
      • “blob”显示文件的内容
      • “history”显示导致当前提交修改此文件的提交

  • GitHub示例:git.git viewing commit tagged 1.7.3.2
    • “提交”标签显示历史记录
      • “commit”/“parent”缩写对象名称(十六进制字符串)将您带到提交;表明
        • 为该提交更改的文件
          • 右侧的绿色和红色方块表示每个文件中添加/删除的行数
        • 提交的差异
          • “查看文件”显示在该提交中捕获的整个文件
            • “raw”查看/下载文件
            • “blame”显示最近提交更改此文件的每一行
            • “history”显示导致当前提交更改此文件的提交

如果您要在历史记录中进行任何重要的挖掘,那么可能值得克隆存储库(如果托管服务没有,则可能是唯一的方式某种网络界面)。您将不得不使用一些磁盘空间,但您的调查不仅限于Web界面提供的内容,而且速度会快得多。

另一种可能性是git archive;它是一个可选服务器,因此可能无法为托管您的存储库的服务器启用它。它允许您下载单个树的存档(例如tar或zip文件)。从技术上讲,您可以提取这些存档并手动区分它们以获取您所追踪的信息,但它可能比仅仅克隆存储库和使用常规工具(即git log {{1}更麻烦且效率更低}或--stat有或没有--numstat / -m / -c)。

答案 1 :(得分:2)

如果您的存储库URL用于ssh类型连接,那么您可以通过ssh发出远程日志命令,例如

如果您可以使用以下命令克隆:

git clone username@host:/path/to/repository.git

然后你应该能够使用:

发出一个日志命令
ssh username@host git --git-dir /path/to/repository.git log

答案 2 :(得分:1)

如果您有权访问服务器,则可以在服务器上本地运行git log,解析数据并发回聚合结果。