git clone - 来自ssh:objects文件夹为空

时间:2016-05-12 02:09:34

标签: git ssh sshfs

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

否则

git clone --bare mount_point/path

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

给出两个不同的结果。特别是,主要区别在于对象文件夹。第一个包含000b,...子文件夹和pack子文件夹中的某些文件。第二个只有infopack,而pack中的文件与第一个案例不同。因此,两个克隆裸露回购物的大小不同。

尽管如此,我可以成功地执行git log或者例如git diff。

有谁能告诉我发生了什么事?可能是因为ssh上的git-clone会压缩存储库中的更多对象吗?或者我在哪里丢失信息?

非常感谢

1 个答案:

答案 0 :(得分:1)

git在处理相同卷/同一台计算机上的存储库时优化克隆的存储库存储。查看--no-hardlinks的{​​{1}},--local等选项。实际上,它可以强迫它制作一个真正的副本。但通常你不需要。

更新:好的,没有硬链接。在网络传输git包之前,接收端缺少对象,这些包在收到时存储,无需解压缩。 git clone --help也是如此。 git gc包含打包对象,顾名思义。要查看特定包文件的内容,请使用.git/objects/pack/。查看this doc获取教程。