使用Dropbox同步文件并在版本控制中备份它们

时间:2012-03-24 09:39:05

标签: git dropbox

我使用dropbox进行随机文本备注(org-mode)和我引导的点文件,即

  1. 我的bash初始化的一部分
  2. emacs配置
  3. vim配置
  4. 组织模式文档建议在编辑折叠部分时出现错误时进行备份。说得通。我还想要备份,以防我想要退出配置更改。

    有很多关于为什么使用git可以在Dropbox中破解的帖子。

    我看到了几个选项:

    1. 不使用dropbox并使用bitbucket来托管git上的文件。缺点是当我切换机器时,我必须记住拉动任何变化,这是不方便的。

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

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

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

1 个答案:

答案 0 :(得分:1)

您可以使用dropbox,而不是完整的裸Git仓库(因为要同步的文件数量很大,如果其中一个文件没有正确同步,则存在损坏的仓库的风险,如“ Git ref master now empty, how to recover?“)。

我更喜欢将dropbox与git repo 捆绑 结合使用(即一个文件):
请参阅“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