git 存储库导出和导入到 zip 文件或文件夹

问题描述 投票:0回答:1

SO 上有一些与 git 存储库导出和导入相关的类似帖子,但所有答案都不完整。所以我在这里问单独的问题。

我在 eclipse 中使用 EGIT 来处理 git SCM。

如何将 git 存储库导出到 zip 文件/文件夹(包含所有分支、标签和历史记录) 并将相同的存储库导入回 Eclipse?

我试过了,

git archive HEAD --format=zip >~/abc.zip
但是在 Eclipse 中导入回来时它不起作用。

还有其他方式导入和导出git仓库吗?


编辑

看了@VonC 的答案后,我这样做了

git bundle create ~/abc.bundle --all

git bundle list-heads ~/abc.bundle
      <pre>
      refs/heads/master
      refs/remotes/origin/branch1
      refs/remotes/origin/branch1
      refs/remotes/origin/branch3
      refs/remotes/origin/master 
      refs/remotes/origin/branch4
      .....
      refs/tags/tag1
      refs/tags/tag2
      refs/tags/tag3
       ....</pre>

git clone -b master ~/abc.bundle ~/newrepo/xyz/

但是当我尝试在 Eclipse 中导入这个 git 存储库时,我一直只获得 master 分支,就像在克隆时使用

master
一样。是否可以通过一个命令克隆所有分支?

git import repository export egit
1个回答
2
投票

另一种方法,实际上确实保留了完整的历史记录,是

git bundle
(请参阅“备份本地 Git 存储库”)。

cd /path/to/your/repo
git bundle create ../repo.bundle --all

但是,在 EGit 可以看到导出/导入的存储库之前,您必须再次克隆它,因为 EGit 尚不支持将捆绑文件作为存储库


当我尝试在 Eclipse 中导入这个 git repo 时,我只得到 master 分支,就像在克隆时我使用 master 一样。是否可以通过一个命令克隆所有分支?

在克隆的存储库(从捆绑包中克隆的存储库)中执行

git branch -avvv

您应该看到所有远程分支 (
origin/xxx
)。

然后

Eclipse 应该能够基于 那些远程跟踪分支之一列出并创建一个新分支,如“如何在 EGit 中创建正确的新本地和远程分支组合?”。

要从捆绑包中恢复所有分支,请参阅“从 git 捆绑包中恢复所有引用”:
您需要镜像克隆它。

© www.soinside.com 2019 - 2024. All rights reserved.