导出GitHub仓库

10
我正在处理一个与我的学位有关的项目,目前存储在我的GitHub仓库中。不久后我将把它交给客户。
我想知道是否有一种方法可以导出整个仓库,包括所有分支和相关历史记录,以便在将来交给其他开发人员之前进行存储?

在将所有权转移给客户/继任者之前,您可以fork该repo。 - donkon
2个回答

15

(1) 使用 git archive 命令(备份一个分支),例如以下命令(假设您正在 Git 本地仓库内):

git archive master --format=zip --output=java_exmamples.zip

你会看到文件java_exmamples.zip(在同一文件夹中)是主分支的备份。


(2) 使用git bundle(用于备份所有分支)

一个真实的例子:

git clone --mirror https://github.com/donhuvy/java_examples.git
cd java_examples.git/
git bundle create repo.bundle --all

repo.bundle 是您需要的文件(完整备份),位于相同目录下。

如何从文件 repo.bundle 进行恢复:

git clone repo.bundle

参考资料

https://git-scm.com/docs/git-archive

https://git-scm.com/docs/git-bundle

http://rypress.com/tutorials/git/tips-and-tricks#bundle-the-repository


3
不是使用git archive,因为它不能导出完整的历史记录。而我已经建议使用git bundle了。 - VonC
非常感谢,看起来就是我所寻找的。 - Carl

4
除了fork它(这是在远程端GitHub上的克隆),你还可以将其导出为一个bundle文件
从你自己的本地克隆中,你可以输入以下命令(使用git bundle):
git bundle create /tmp/myrepo.bundle --all

那会给你一个文件(易于复制),您可以随时从中克隆回您的存储库。
cd /a/new/path
git clone /tmp/myrepo.bundle myrepo
cd myrepo
pwd
  /a/new/path/myrepo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接