gpt4 book ai didi

git - 无需检查即可获取历史记录

转载 作者:太空狗 更新时间:2023-10-29 14:26:54 25 4
gpt4 key购买 nike

对于一个项目,我需要知道两次修订之间的所有提交。

通常人们只会克隆存储库并检查历史记录。我不需要文件实际存在于文件系统中,我只对历史本身感兴趣。
由于大型存储库的性质,克隆它们可能需要一些时间。

有没有办法在最短时间内获取历史(甚至是两次修订之间的历史)?是否有可能实际上不检查文件(因为我想这就是花费最多时间的事情)。

最佳答案

这里的关键字是“浅克隆”。

check out 一个给定的修订本身可能相当长,但这不是克隆存储库时最长的操作,因为在 check out 给定的修订之前所有对象将首先被遣返。

但是,您可能想看一下git clone--depth--shallow-since 参数,这将允许您只获取分支的提示,直到给定点。

这将使您能够快速检索给定存储库的最新历史记录,这可能是您最需要的,然后在需要时再次使用 git fetch 来恢复分支的其余部分。

不幸的是,检索唯一的历史本身是不可能的(据我所知),因为这个历史不是作为一个整体“记录”在某种文件中的,而是由每个对象对其父对象的递归引用构成的。

因此,如果您有权访问(甚至是只读的).git 原始子目录,您可以做一些真正肮脏的事情是复制位于 .git/objects 但只有那些已知是 commit 的(你可以用 git cat-file -t 告诉它)。事情本身会被破坏,因为树和文件本身在您这样做时都不可用,但您仍然可以通过 git remote update 或类似操作获取它们。

关于git - 无需检查即可获取历史记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56078201/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com