使用Git作为Dropbox的离线替代方案

我每天都在处理大量的文本文件,并且我使用Dropbox来恢复文件的早期版本,以防出现问题。

我正在寻找一种简单的方法,在我的Internet连接断开并且Dropbox无法工作时,用来补充/替代Dropbox的这个功能。基本上,我想使用git来做到以下几点:

1)自动保存磁盘上或给定文件夹中每个文件的每个修订版本,但仅限于特定扩展名(.html,.tex,.txt,.doc,.odt等)

2)轻松浏览先前的版本并进行恢复。理想情况下,我希望能够选择保存修订版本的目标文件夹

为每个文件创建一个新的Git项目并不是一个很好的主意,所以我正在寻找更简单的方法,可以只重新创建具有还原先前版本选项的文件夹结构。


5你可以使用一个git仓库来存放你所有的文件。你只需要确保每次提交一个文件,这样可以更好地查看每个文件的概览。有几个git客户端可以帮助你管理仓库(例如查看和恢复旧版本的文件),GitCola 是我在不使用NetBeans git插件时使用的工具。如果你想进行在线备份,BitBucket 是一个好的免费平台,它还允许创建免费的私人仓库。 - mondjunge
1@mondjunge 谢谢你的建议。然而,我正在寻找一个解决方案,它不需要在给定文件夹及其子文件夹的初始设置后进行版本提交。我不想每次都手动提交版本-我知道这会使修订更难以识别,但我希望它能自动运行。 - Rafal
有效。也许你需要的是一个备份工具。我对它们没有足够的经验来推荐一个。我使用Deja Dub,但说实话,我只是看到它在做一些事情,我不知道它是否有效(直到我的机器冒烟了,我才会换一个新的)。 - mondjunge
我认为这通常是一个不好的主意,因为将许多二进制文件放入git可能会导致尺寸膨胀、大量垃圾和性能问题。而且还没有考虑到备份的不便之处。 - Michael Pankov
@mondjunge 如果你从未测试过恢复功能,那么在我看来,你也是没有备份的运行。 - Dan Is Fiddling By Firelight
@Dan Neely:没错。我不是备份的典范,但至少有机会保存和恢复我的重要文件,即使我还没有测试过这个功能。 - mondjunge
3个回答

使用SparkleShare怎么样?
SparkleShare旨在使用Git自动同步多个贡献者之间的项目。您可以将其基本上用作自动保存更改到版本控制的Git存储库的工具,而无需使用其多个贡献者功能。
它将连接到各种服务,包括BitBucket:

SparkleShare Setup

这里你可以看到它展示的文件夹历史。

Recent Changes

SparkleShare只保存更改并保留更改列表。据我所知,没有办法使用它来查看特定提交时的文件。在“最近更改”对话框中点击文件只会打开最新版本。
因此,您可以使用Git客户端,例如Giggle Install giggle来查看特定提交时的更改:

Giggle

然而,Giggle不允许您查看特定提交的实际文件,而是强制您查看更改。因此,您可能希望使用其他客户端,例如 gitg Install gitg

gitg

(到处都是黑色的错误,因为我正在使用GNOME 3.8 PPA。)
(您可以通过点击此按钮来安装SparkleShare:)

Install via the software center

或者,您可以在终端中使用以下命令:
sudo apt-get install sparkleshare

我很想使用SparkleShare。不知道是否有一个ppa已经集成了这个补丁。没有正确的修改时间,无法生存。 - MadMike

如果你正在寻找一款先进的备份工具,我推荐使用Back In Time Install backintime-gnome

enter image description here

你可以以很多种方式进行配置,但这是我使用的方式:
- 每小时拍摄一次快照 - 保留过去24小时的每小时快照 - 保留过去7天的每日快照 - 保留过去4周的每周快照 - 保留过去24个月的每月快照

如果你使用Linux,你可以尝试Btrfs文件系统,它具有出色的备份功能。
如果你转向FreeBSD或OpenIndiana,你可以使用XFS。

这与Dropbox或GIT有什么关系? - Braiam
@Braiam 我认为这个意思是,Btrfs 提供的快照和修订能力本身就足以取代更多基于软件的解决方案。 - Lewis Goddard
@btreus 感谢您的建议。然而,我正在寻找尽可能简单的解决方案,而无需切换到另一个文件系统(我目前使用的是ext3)。 - Rafal