gpt4 book ai didi

git clone --bare 来自 ssh : objects folder empty

转载 作者:行者123 更新时间:2023-12-02 14:33:32 25 4
gpt4 key购买 nike

我在服务器上有一个工作目录,我可以使用交互式 ssh 访问它,也可以使用 sshfs 安装我的家,我想创建一个裸存储库来开始共享它。

正在做

git clone --bare mount_point/path


git clone --bare ssh://user@server/path

给出两个不同的结果。特别是,主要区别在于对象文件夹。第一个有 00 , 0b , ... pack 中的子文件夹和某些文件子文件夹。而第二个只有 infopack , 以及 pack 中的文件与第一种情况不同。因此,两个克隆的裸仓库的大小是不同的。

不过,在这两种情况下,我都可以成功地执行 git log 或例如 git diff。

谁能告诉我发生了什么?是不是 git-clone over ssh 压缩了存储库中的更多对象?还是我在某处丢失了信息?

非常感谢你

最佳答案

git 在处理相同卷/相同计算机上的存储库时会优化克隆存储库存储。看--no-hardlinks , --localgit clone --help 的选项.实际上,可以强制它制作“真实副本”,但通常您不需要这样做。

更新:好的,没有硬链接(hard link)。在网络传输之前 git 打包对象,在接收端丢失,并且这些包按接收到的方式存储,无需解包。 git gc做同样的事情。 .git/objects/pack/顾名思义,包含打包的对象。要查看特定包文件的内容,请使用 git verify-pack -v .git/objects/pack/pack-<smth>.idx .查看this doc教程。

关于git clone --bare 来自 ssh : objects folder empty,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37176097/

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