我正在做一些工作来跟踪git支持工具中的感知错误,我想复制一个存储库(可能多次)用于实验目的.我希望将硬链接创建到原始存储库对象数据库,以免浪费磁盘空间存储具有相同SHA值的相同对象的多个副本.git clone很好地完成了这个,但不幸的是我似乎无法找到一种方法让git clone给我一个像原始存储库一样的存储库的新副本:
我可以通过使用git clone --mirror来改善其中一些,但这只会创建一个裸存储库,我正在尝试的存储库不是裸的,我试图调试的支持工具不能在裸机上运行库.
我想写一个快速shell循环来使一个新的对象数据库充满原始对象数据库的硬链接,然后从原始.git目录复制其他所有内容,然后进行git checkout,但我担心这是复杂到足以容易出错,而且我不太了解正确执行这种低级手术,并且会构建一个存在细微错误的存储库.理论上,这种方法应该有效吗?
更好的是,有没有办法将选项传递给git clone以使其能够满足我的需求?
有没有办法可以创建一个新的存储库,但告诉它它的对象数据库在另一个目录中,基本上告诉它从原始存储库共享对象数据库?
如果上述方法都不起作用,那么我只剩下一个cp -pr,它将消耗大量空间并且耗时.
我想你在找
git clone --reference=/path/to/existing/repo url
Run Code Online (Sandbox Code Playgroud)
在git lingo中这称为使用"替代".这个选项存在潜在问题,如git clone帮助中所述,但它可能适合您的目的.
您可能也对Dustin的助手git-alternates感兴趣.
| 归档时间: |
|
| 查看次数: |
4000 次 |
| 最近记录: |