首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何git捆绑一个完整的repo

如何git捆绑一个完整的repo
EN

Stack Overflow用户
提问于 2012-08-03 17:07:38
回答 3查看 78K关注 0票数 142

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

什么是正确的调用:

  1. 捆绑当前存储库中的所有分支
  2. 在目标目录上启动新的存储库,即正确安装根提交

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

代码语言:javascript
复制
`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将提供源机器的镜像,包括它的远程refs。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-03 20:14:49

什么是正确的调用:

  • 捆绑当前存储库

中的所有分支

简单:

代码语言:javascript
复制
$ git bundle create repo.bundle --all

这里的repo.bundle是您想要创建的包文件的名称。请注意,--all将不包括远程跟踪分支...就像普通的克隆人一样。

  • 在目标目录上启动新的存储库,即正确安装

的根提交

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

其次,您可以在任何可以使用存储库URL的地方使用捆绑包文件,因此您可以简单地从捆绑包文件执行clone

代码语言:javascript
复制
$ git clone repo.bundle

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

票数 228
EN

Stack Overflow用户

发布于 2015-12-08 22:21:50

首先克隆存储库,并包含--mirror选项。

git clone --mirror git@example.org:path/repo.git

这可以确保所有远程分支也都是本地分支,为构建做好准备。

然后运行

根据Jakub Narębski的回答所描述的git bundle create repo.bundle --all

票数 41
EN

Stack Overflow用户

发布于 2012-08-03 17:16:47

我建议您压缩或压缩.git文件夹,然后将其解压到新位置,然后执行git reset --hard HEAD。所有分支所需的所有内容都在.git下,您需要做的就是调整.git/config文件中的任何远程变量或删除它们。

代码语言:javascript
复制
tar cf myrepo.tgz .git
cp myrepo.tgz [USB_STICK]
... move to new machine ...
mkdir myrepo && cd myrepo
tar xpf [USB_STICK]/myrepo.tgz
git reset --hard HEAD
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11792671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档