我经常把我的笔记本电脑备份到外置硬盘上。rsynchroning git repos是否是一个足够好的备份解决方案,或者这个方法有什么问题吗?
cczfrluj1#
rsync是一个很好的解决方案,在备份之前运行git gc和git repack(两者都不带任何参数)可能是一个好主意;这可以显著减少文件的数量,并增加下次数据不会改变太多的机会。2也不会丢失任何数据。参见Git Best Practices(作者Seth Robertson),了解为什么用git做这些不是一个好的解决方案。
rsync
git gc
git repack
sigwle7e2#
rsync是有趣的,如果你真的想备份一切(包括挂钩和私人文件)。然而:
一个更好(更干净)的解决方案是使用git bundle(它本质上是一个被视为 * one * 文件的bar repo)。更新本地包,并将其rsync保存到远程介质。除了这一次,您只需要"rsync"(实际上一个简单的副本就足够了)一个文件。您可以直接克隆或提取该文件,即该包。
rjee0c153#
我有一个repo,我一直在托管,我推到。如果我想在某个地方工作,我克隆它,推回更改时,我做了。你也可以同步它,但是我发现克隆一个repo然后用它作为我的主要开发点更容易,我认为使用一个工具可能更容易,但是你的里程可能会有所不同。
3条答案
按热度按时间cczfrluj1#
rsync
是一个很好的解决方案,在备份之前运行git gc
和git repack
(两者都不带任何参数)可能是一个好主意;这可以显著减少文件的数量,并增加下次数据不会改变太多的机会。2也不会丢失任何数据。参见Git Best Practices(作者Seth Robertson),了解为什么用git做这些不是一个好的解决方案。
sigwle7e2#
rsync是有趣的,如果你真的想备份一切(包括挂钩和私人文件)。
然而:
一个更好(更干净)的解决方案是使用git bundle(它本质上是一个被视为 * one * 文件的bar repo)。
更新本地包,并将其rsync保存到远程介质。
除了这一次,您只需要"rsync"(实际上一个简单的副本就足够了)一个文件。
您可以直接克隆或提取该文件,即该包。
rjee0c153#
我有一个repo,我一直在托管,我推到。如果我想在某个地方工作,我克隆它,推回更改时,我做了。
你也可以同步它,但是我发现克隆一个repo然后用它作为我的主要开发点更容易,我认为使用一个工具可能更容易,但是你的里程可能会有所不同。