在外部磁盘上备份整个git存储库的最佳方法是什么?

时间:2010-12-07 02:21:28

标签: git backup repository

所以我希望能够备份一个git存储库,它可能有几个分支到外部硬盘驱动器上,然后在以后能够将它复制回我的本地机器并像往常一样使用它吗?我试过简单地复制包含.git目录的工作目录文件夹,但它确实有效。但是,我想知道这是否是最好的方式,或者是否有陷阱。

6 个答案:

答案 0 :(得分:21)

使用常规文件系统复制命令复制整个工作副本可以正常工作。您也可以压缩/ tar备份。

如果您担心磁盘空间,您还可以查看“git bundle”,这可能会产生较小的文件。

您也可以通过在外部磁盘(git clone)上启动新的repo来获得增量备份,然后每次都进行更改(git pull)。在像git这样的分布式系统中,备份和工作副本之间没有太大区别。

答案 1 :(得分:7)

如果您没有对工作树中的备份进行任何更改,则可以使用git clone --mirror创建一个裸克隆,其中包含逐字复制的所有引用(分支,标记,绝对所有内容)。然后,您可以使用git push --mirror逐步更新它。这就是它的设计目标。

复制整个仓库,包括工作树,也可以,但是逐步增加会有点痛苦,显然会占用更多的空间。

答案 2 :(得分:3)

这是实现它的唯一方法,而不是将存储库克隆到外部磁盘上。但这两种方法大致相同,只是复制克隆将保留任何特定于repo的配置设置。

答案 3 :(得分:2)

汇总,

  • 你可以复制该死的目录,确定它有效。
  • 你可以克隆。
  • 您可以git bundlegit archive

你也可以,

您可以将其转储到稍后可以导入的单个文件中。

$ git fast-export --all | (cd /empty/repository && git fast-import)

答案 4 :(得分:1)

这里没有陷阱,git是一个完全分布式的SCM。使用.git目录复制工作副本是足够的备份。

答案 5 :(得分:1)

复制整件事或使用同步工具很好。回购包装完全包含在便携式中。