使用版本历史记录导出git

时间:2012-08-09 08:16:18

标签: git

我需要导出git存储库内容并将其导入目标存储库。我知道有两种方法可以做到,但它们并没有解决我的问题

a)将源存储库添加为远程存储库并对目标进行合并。我不能使用它,因为两个存储库都不在同一个网络上

b)使用git archive并将内容复制到目标。在这个git存档中,修订信息会丢失。

我需要能够存档以及版本历史记录并使我能够合并到目标中。怎么办呢?

4 个答案:

答案 0 :(得分:46)

git bundle是出于此目的提供的。

示例:

  1. 完整地捆绑您的源存储库

    git bundle create my_repo.bundle --all

  2. 将“my_repo.bundle”带到目标所在的位置

  3. 从目标中加载源提交对象

    git bundle unbundle my_repo.bundle

    ...从那时起,您可以将您想要的源提交合并/转换/樱桃选择到您的目标存储库中,以获取您心中的内容。

    否则,拉动工作原理相同:

    git pull my_repo.bundle

  4. 与克隆相比,捆绑更容易转移,因为它们较小,因为您的文件未在其签出状态下携带。

    使用捆绑包的其他原因:

    • 与使用clone --bare(不检出文件)不同, 捆绑包被创建并打包为单个文件,因此您不需要 额外的压缩/压缩。

    • 你也可以简单地tar你的源存储库(或者只是 .git目录),但你将携带所有多余的缓存和 在.git /.

    • 下构建的垃圾

答案 1 :(得分:2)

Git将存储库克隆到USB记忆棒,笔记本电脑或其他一些数据传输介质上。将其连接到另一台机器,添加将介质添加为远程并从那里拉/合并更改...

存储库中的任何克隆实际上都包含所有历史记录,因此问题是如何将克隆到另一台计算机。

另见:this question

答案 2 :(得分:0)

您想要创建当前存储库的分支。 如果我做对了,请告诉我: 您希望克隆特定的git存储库。处理克隆,然后将更改合并到原始存储库中?

这是我创建存储库的一个分支,然后从原始源中提取更改以进行提交更改。

答案 3 :(得分:0)

您只需压缩完整的存储库文件夹,然后将其复制到目标工作站(通过USB棒等),并将该本地存储库添加为远程存储库。然后你可以获取并合并。