【问题标题】:git clone without objects to do git loggit clone 没有对象做 git log
【发布时间】:2016-08-01 13:38:38
【问题描述】:

如何在不获取实际文件及其所有修订增量的情况下克隆 git 存储库? 我只想做git log | grep,不需要访问文件的内容。

我想跳过这部分克隆:

Receiving objects:  12% (359112/2981072), 432.66 MiB | 1.67 MiB/s

有一些存储库的日志我想要 grep,但没有下载/签出整个存储库,因为它们重达千兆字节。如果有帮助的话,即使是我只获取单个分支日志(例如 master)的解决方案也让我感兴趣。


基本上我正在为git 寻找类似svn log <repo url> 的东西。

【问题讨论】:

    标签: git download git-clone revision-history


    【解决方案1】:

    Partial clone 现在可用于更新版本的 git:

    git clone --filter=blob:none --no-checkout git@github.com:foo/bar.git
    

    【讨论】:

    • github.com/JetBrains/kotlin.git 上测试过,确实,它只下载了 230MB 而不是 1.4G。注意:像这样的克隆即使git fetch 也不会下载更多数据。惊人的! (注意:git status 会在一定程度上获取master
    【解决方案2】:

    我认为这是不可能的。 你最多可以做一个浅层克隆,只取回 X 提交的历史,但对于他们来说,对象仍然会被下载。 唯一可以帮助您的是--single-branch 选项,它只下载一个分支而不是所有分支的历史记录。

    【讨论】:

    • 我现在会接受这个,但任何解决方法都将被接受,如果它实际上以某种方式可行!
    • 现在有更好的答案?。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-16
    相关资源
    最近更新 更多