gpt4 book ai didi

git - 如何 git bundle 一个完整的 repo

转载 作者:IT王子 更新时间:2023-10-29 01:24:15 26 4
gpt4 key购买 nike

我需要将完整的存储库传输到一台新的非联网机器,最好是作为单个文件实体。 git bundle 允许在 sneakernet 环境中进行 git fetchgit pull 风格的操作,但似乎假定您已经在目标机器上拥有一个工作版本的 repo。

什么是正确的调用:

  1. 捆绑所有当前仓库中的分支
  2. 在目标目录上启动新的 repo,即正确安装 root commit

我已经向上游发送了一个补丁来澄清:

`git clone` can use any bundle created without negative refspecs
(e.g., `new`, but not `old..new`).
If you want to match `git clone --mirror`, which would clone other
refs such as `refs/remotes/*`, use `--all`.
If you want to provide the same set of refs that a clone directly
from the source repository would get, use `--branches --tags` for
the `<git-rev-list-args>`.

所以 $ git bundle create repo.bundle --branches --tags 最适合克隆。

$ git bundle create repo.bundle --all 将提供源计算机的镜像,包括它的远程引用。

最佳答案

What is the right invocation to:

  • Bundle all the branches in the current repo

简单:

$ git bundle create repo.bundle --all

此处 repo.bundle 是您要创建的捆绑文件的名称。请注意,--all 不会包含远程跟踪分支...就像普通克隆一样。

  • Start up the new repo on the destination directory, i.e. get the root commit correctly installed

首先,clone 只是init + fetch (+ administrativia)。

其次,您可以在任何可以使用存储库 URL 的地方使用捆绑文件,因此您可以简单地从捆绑文件中克隆:

$ git clone repo.bundle

这将创建 repo 作为 git 存储库。

关于git - 如何 git bundle 一个完整的 repo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11792671/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com