【问题标题】:How to unbundle a git bundle?如何解开一个 git 包?
【发布时间】:2017-03-16 16:43:59
【问题描述】:

我刚刚通过电子邮件收到了一个 Git 包。我如何解开它以便阅读它?我在使用 unbundle 命令时遇到问题。我试过了

git unbundle *bundle name* 

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

eae0b00697e53cd87c871143051673f3ee413148  

和裁判/负责人/主人

【问题讨论】:

  • 我们需要更多信息来帮助您。例如,什么是“奇怪的代码”?

标签: git bundle git-bundle


【解决方案1】:

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

你根本不应该运行这个命令。

我刚刚通过电子邮件收到了一个 Git 包。我如何解开它以便阅读它?

这在the git bundle documentation中有描述:

示例

假设您要将历史记录从机器 A 上的存储库 R1 传输到机器 B 上的另一个存储库 R2。无论出于何种原因,A 和 B 之间的直接连接是不允许的,但我们可以通过一些方法将数据从 A 移动到 B机制(CD、电子邮件等)。我们希望通过在 R1 中的分支 master 上进行的开发来更新 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 上的其他人已经完成了前几个步骤。 (他们做得对吗?我不知道;你呢?)

【讨论】:

    猜你喜欢
    • 2012-09-17
    • 1970-01-01
    • 1970-01-01
    • 2014-09-28
    • 2018-12-24
    • 1970-01-01
    • 1970-01-01
    • 2020-08-11
    • 2022-10-24
    相关资源
    最近更新 更多