如何备份 git repo?

30 backup git

我打算从 SVN 切换到 git。使用 svn,当我想备份它时,我只需复制我的 repo 文件夹。但是 git 没有,那我该怎么办?

我应该在单独的驱动器上创建一个克隆并通过从我的项目中提取来更新吗?然后我可以刻录/存档这个文件夹,它会有所有的历史记录吗?

这可能很明显,但我想确定一下备份。我仍然假装有一个根存储库。

小智 23

akira 答案是正确的,但您可以添加 --mirror 来创建一个裸仓库(用于稍小的备份)。

我们使用以下策略(几乎完全相同):

git clone --mirror yourrepo backup.repo
tar cjf backup.repo.tar.bz2 backup.repo
scp backup.tar.bz2 ssh://somewhereelse
Run Code Online (Sandbox Code Playgroud)

然后,要从备份中恢复:

tar xjf backup.repo.tar.bz2
git clone backup.repo yourrepo
Run Code Online (Sandbox Code Playgroud)

  • 这很有帮助,谢谢。如何使用备份的 repo 来恢复工作树? (3认同)

Dav*_*man 15

你复制一下就行了。git确实使用了一个 repo 文件夹,它只是隐藏在普通目录视图中。(该文件夹.git在 *nix 系统上命名,因此只有在您使用ls -a.那里是如何处理的。)

  • @grawity:它更像是“自包含”部分,分布式部分是当您在自包含存储库之间交换差异时:) (5认同)
  • 在 Windows 上,它仍然是 `.git`,带有“隐藏”属性。 (2认同)

小智 10

我正在使用git bundle。要制作副本文件(一个备份文件),请执行:

git bundle create backup.bundle master
Run Code Online (Sandbox Code Playgroud)

要使用分支 master 恢复存储库,只需克隆 backup.bundle 文件:

git clone backup.bundle -b master my-project
Run Code Online (Sandbox Code Playgroud)