如何解绑 git 包?

Jam*_*ssy 5 git bundle git-bundle

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

git unbundle *bundle name* 
Run Code Online (Sandbox Code Playgroud)

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

eae0b00697e53cd87c871143051673f3ee413148  
Run Code Online (Sandbox Code Playgroud)

和 refs/heads/master

tor*_*rek 9

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

您根本不应该运行此命令。

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

这在描述所述git bundle文档

例子

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

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

machineA$ cd R1
machineA$ git bundle create file.bundle master
machineA$ git tag -f lastR2bundle master
Run Code Online (Sandbox Code Playgroud)

然后你将 file.bundle 传输到目标机器 B。 因为这个包不需要提取任何现有的对象,你可以通过克隆在机器 B 上创建一个新的存储库:

machineB$ git clone -b master /home/me/tmp/file.bundle R2
Run Code Online (Sandbox Code Playgroud)

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

[remote "origin"]
    url = /home/me/tmp/file.bundle
    fetch = refs/heads/*:refs/remotes/origin/*
Run Code Online (Sandbox Code Playgroud)

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