push vs. bundle vs. tar zcvf - 备份整个本地.git

Win*_*Win 14 git

我可以通过两个步骤将其推送到存储库来备份我的本地.git:

git push --all ~/gitrepo
git push --tags ~/gitrepo
Run Code Online (Sandbox Code Playgroud)

我可以使用git bundle备份它.

我可以通过简单地复制整个目录或将其归档(压缩!)来备份它:

tar -zcvf gitrepo.tgz .git
Run Code Online (Sandbox Code Playgroud)

并且可能有其他方法来备份整个本地.git.

现在的问题是它们是否真的相同?(例如,logs不推送子目录)

git push方法的优点是什么git bundle

可以tar -zcvf被认为是"完美的git备份"吗?

seh*_*ehe 8

我使用Git捆绑

git bundle create /tmp/backup.git --all --tags --remotes
Run Code Online (Sandbox Code Playgroud)

你可以收到它,好像它是一个回购:

cd myworktree
git pull /tmp/backup.git
Run Code Online (Sandbox Code Playgroud)

但也看到了


完整性,笔记

对于完整备份(git-rerere缓存,存储,挂钩,配置文件)我建议使用rsync

rsync -hxPavilyzH --stats --delete .git/ backup@remote:/repo/mirror.git/
Run Code Online (Sandbox Code Playgroud)

或者:


Die*_*Epp 5

关于tar:它保存了所有内容:配置(远程URL),reflogs等.如果你不小心在你的存储库中做了一些非常愚蠢的事情并且你的硬盘很快就崩溃了,你可能会想要reflog .牵强附会,但tar很容易,它可以做到一切.使用tar制作备份,使用git push制作的镜子.这些是不同类型的任务.

关于压缩:我有一个27M的git repo,几乎完全是纯文本,而且.tar.gz......也是27M.这不是一大笔积蓄.


Von*_*onC 5

tar方法是可能的,但它不会检查保存的repo的完整性:在解压缩并尝试克隆或从中获取之前,您不会知道压缩的repo是否有效.

我更喜欢克隆 - 镜像方法(在生成的裸仓库中启用了reflog).
然后,增量备份就是简单推送.
正如在这个旧线程中所讨论的那样,git stash在备份之前可能允许您保存更多(索引和工作树状态)


归档时间:

查看次数:

4100 次

最近记录:

14 年,11 月 前