我需要导出git存储库内容并将其导入目标存储库。我知道有两种方法可以做到,但它们并没有解决我的问题
a)将源存储库添加为远程存储库并对目标进行合并。我不能使用它,因为两个存储库都不在同一个网络上
b)使用git archive并将内容复制到目标。在这个git存档中,修订信息会丢失。
我需要能够存档以及版本历史记录并使我能够合并到目标中。怎么办呢?
答案 0 :(得分:46)
git bundle
是出于此目的提供的。
示例:强>
完整地捆绑您的源存储库
git bundle create my_repo.bundle --all
将“my_repo.bundle”带到目标所在的位置
从目标中加载源提交对象
git bundle unbundle my_repo.bundle
...从那时起,您可以将您想要的源提交合并/转换/樱桃选择到您的目标存储库中,以获取您心中的内容。
否则,拉动工作原理相同:
git pull my_repo.bundle
与克隆相比,捆绑更容易转移,因为它们较小,因为您的文件未在其签出状态下携带。
使用捆绑包的其他原因:
与使用clone --bare
(不检出文件)不同,
捆绑包被创建并打包为单个文件,因此您不需要
额外的压缩/压缩。
你也可以简单地tar你的源存储库(或者只是 .git目录),但你将携带所有多余的缓存和 在.git /.
答案 1 :(得分:2)
Git将存储库克隆到USB记忆棒,笔记本电脑或其他一些数据传输介质上。将其连接到另一台机器,添加将介质添加为远程并从那里拉/合并更改...
存储库中的任何克隆实际上都包含所有历史记录,因此问题是如何将克隆到另一台计算机。
答案 2 :(得分:0)
您想要创建当前存储库的分支。 如果我做对了,请告诉我: 您希望克隆特定的git存储库。处理克隆,然后将更改合并到原始存储库中?
这是我创建存储库的一个分支,然后从原始源中提取更改以进行提交更改。
答案 3 :(得分:0)
您只需压缩完整的存储库文件夹,然后将其复制到目标工作站(通过USB棒等),并将该本地存储库添加为远程存储库。然后你可以获取并合并。