我可以通过两个步骤将其推送到存储库来备份我的本地.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)
现在的问题是它们是否真的相同?(例如,logs不推送子目录)
该git push方法的优点是什么git bundle?
可以tar -zcvf被认为是"完美的git备份"吗?
我使用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)
或者:
关于tar:它保存了所有内容:配置(远程URL),reflogs等.如果你不小心在你的存储库中做了一些非常愚蠢的事情并且你的硬盘很快就崩溃了,你可能会想要reflog .牵强附会,但tar很容易,它可以做到一切.使用tar制作备份,使用git push制作的镜子.这些是不同类型的任务.
关于压缩:我有一个27M的git repo,几乎完全是纯文本,而且.tar.gz......也是27M.这不是一大笔积蓄.
| 归档时间: |
|
| 查看次数: |
4100 次 |
| 最近记录: |