解开git捆绑麻烦

时间:2017-03-16 16:44:00

标签: git bundle git-bundle

我刚通过电子邮件收到了Git捆绑包。如何解读它才能阅读?我在使用unbundle命令时遇到问题。我试过了

   git unbundle *bundle name* 

但这给了我一个奇怪的代码

       eae0b00697e53cd87c871143051673f3ee413148  

和refs / heads / master

1 个答案:

答案 0 :(得分:3)

  

我在使用unbundle命令时遇到问题。

根本不应该运行此命令。

  

我刚通过电子邮件收到了Git捆绑包。如何解读它才能阅读?

the git bundle documentation

中对此进行了描述
  

实施例

     

假设您要将历史记录从计算机A上的存储库R1传输到计算机B上的另一个存储库R2。无论出于何种原因,不允许A和B之间的直接连接,但我们可以通过某些方式将数据从A移动到B.机制(CD,电子邮件等)。我们希望通过在R1中的分支主机上进行开发来更新R2。

     

要引导该过程,您可以先创建一个没有任何基础的捆绑包。您可以使用标记记住上次处理的提交,以便以后使用增量包更新其他存储库:

machineA$ cd R1
machineA$ git bundle create file.bundle master
machineA$ git tag -f lastR2bundle master
     

然后将file.bundle传输到目标计算机B.因为此捆绑包不需要提取任何现有对象,所以您可以通过克隆来在计算机B上创建新的存储库:

machineB$ git clone -b master /home/me/tmp/file.bundle R2
     

这将在结果存储库中定义一个名为“origin”的远程,它允许您从包中获取和提取。 R2中的$ GIT_DIR / config文件将具有如下条目:

[remote "origin"]
    url = /home/me/tmp/file.bundle
    fetch = refs/heads/*:refs/remotes/origin/*

有关其余说明,请参阅其余文档。请注意,在此示例中,是“机器B”;机器A上的其他人已经完成了前几个步骤。 (他们做得对吗?我不知道;你呢?)