【问题标题】:Using Dropbox to synchronize files and having them backed up in version control使用 Dropbox 同步文件并在版本控制中备份它们
【发布时间】:2012-03-24 09:39:05
【问题描述】:

我将 Dropbox 用于我引导的随机文本注释(组织模式)和点文件,即

  1. 我的 bash 初始化的一部分
  2. emacs 配置
  3. vim 配置

组织模式文档建议进行一些备份,以防在编辑折叠部分时出错。说得通。我还需要备份,以防我想退出配置更改。

关于为什么使用 git 会破坏 Dropbox 的帖子很多。

我看到了几个选项:

  1. 不使用 dropbox 并使用 bitbucket 在 git 上托管文件。缺点是切换机器的时候要记得拉取任何改动,不方便。

  2. 我可以通过我的一台机器上的 chron 作业使用 git 来备份 Dropbox 文件夹中的文件,并确保 git 目录没有被 Dropbox 同步。缺点是这有点不对称,因为一台机器在 Dropbox 文件上有 git。但是,历史记录仅用于备份目的,而非协作目的。

  3. 不用担心 Dropbox 问题,因为我很少提交更改并且几乎不使用 git 存储库执行任何其他命令。

  4. 可能是#1 和#2 的组合。偶尔将我的更改推送到远程,不同步 .git 目录。

【问题讨论】:

  • 不错的分析。还有问题吗?
  • Dropbox 有自己的备份/版本控制。有什么理由不这样做吗?
  • 您必须支付 100 美元/年或 10 美元/月的保费才能获得持久的备份。寻找基于他人经验的建议。

标签: git dropbox


【解决方案1】:

您可以使用保管箱,但不能用于完整的裸 Git 存储库(因为要同步的文件数量很多,并且即使其中一个文件没有正确同步,也存在损坏存储库的风险,如“ Git ref master now empty, how to recover?")。

我更喜欢将 Dropbox 与 git repo bundle(即一个文件)结合使用:
请参阅“Git with Dropbox”和“Backup a Local Git Repository”。
详细分析见此blog post

您可以看到script for that kind of task here 的示例(shtirlic (Serg Podtynnyi) 的示例):

#!/usr/bin/env ruby
if __FILE__ == $0
        bundle_name = ARGV[0] if (ARGV[0])
        bundle_name = `pwd`.split('/').last.chomp if bundle_name.nil?
        bundle_name += ".git.bundle"
        puts "Backing up to bundle #{bundle_name}"
        `git bundle create ~/Dropbox/backup/git-repos/#{bundle_name} --all`
end

【讨论】:

  • VonC,在您的示例中,您将共享文件目录和 .git 目录保存在哪里?如果您只是使用 Dropbox 来备份 git 存储库,那么使用 bitkeeper 提供的免费私人存储库不是更容易吗?对于我的笔记目录(而不是共享脚本),我不想记住同步。谢谢。
  • @justingordon:是的,私人回购更好。如果您绝对想使用 that 服务,我只是在回答中提到了使用 Dropbox 的解决方案。在这种情况下,只备份 一个 文件(捆绑包),这样更安全。但是,如果您可以直接使用私有仓库,那么这样做比使用文件同步更容易。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-10-28
  • 2011-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-28
相关资源
最近更新 更多