所以我希望能够备份一个git存储库,它可能有几个分支到外部硬盘驱动器上,然后在以后能够将它复制回我的本地机器并像往常一样使用它吗?我试过简单地复制包含.git目录的工作目录文件夹,但它确实有效。但是,我想知道这是否是最好的方式,或者是否有陷阱。
答案 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 bundle
或git archive
你也可以,
您可以将其转储到稍后可以导入的单个文件中。
$ git fast-export --all | (cd /empty/repository && git fast-import)
答案 4 :(得分:1)
这里没有陷阱,git是一个完全分布式的SCM。使用.git
目录复制工作副本是足够的备份。
答案 5 :(得分:1)
复制整件事或使用同步工具很好。回购包装完全包含在便携式中。