如何捆绑一个完整的回购
我需要将一个完整的回购转移到一个新的非联网机器,最好是一个单独的文件实体。 git bundle允许在sneakernet环境中进行git fetch
, git pull
风格的操作,但是似乎假设你已经在目标机器上有一个工作版本的repo。
什么是正确的调用:
- 捆绑当前回购的所有分行
- 在目标目录启动新的回购,即得到正确安装的根提交
什么是正确的调用:
- 捆绑当前回购的所有分行
简单:
$ git bundle create repo.bundle --all
这里repo.bundle
是要创build的包文件的名称。 请注意, – 所有不会包括远程跟踪分支…就像普通的克隆不会。
- 在目标目录启动新的回购,即得到正确安装的根提交
首先, clone
只是init
+ fetch
(+ administrativia)。
其次,你可以在任何可以使用版本库URL的地方使用bundle文件,所以你可以简单地从bundle文件中clone
:
$ git clone repo.bundle
这将创buildrepo
作为一个混帐存储库。
首先克隆存储库,并包含--mirror
选项。
git clone --mirror git@example.org:path/repo.git
这确保所有远程分支也是当地分支准备bundeling。
然后运行
git bundle create repo.bundle --all
从JakubNarębski的答复描述
我build议你tar或压缩的.git文件夹,只需解压它在新的位置,然后做git reset --hard HEAD
。 所有分支所需的所有东西都在.git下,所有你需要做的就是调整.git / config文件中的任何遥控器,或者删除它们。
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