我需要将完整的 repo 传输到新的非联网机器,最好作为单个文件实体。git bundle 允许在sneakernet 环境git fetch
中git pull
进行样式操作,但似乎假设您已经在目标机器上拥有了一个工作版本的repo。
什么是正确的调用:
- 捆绑当前仓库中的所有分支
- 在目标目录上启动新的 repo,即正确安装 root 提交
我已经向上游发送了一个补丁来澄清:
`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
将提供源机器的镜像,包括它的远程参考。