Git作为备份和版本控制系统

git*_*oob 17 git

我想使用Git来备份我的主驱动器,但我也想将它用作存储在我家驱动器中的项目的版本控制系统.

我该怎么做呢?我是否.gitignore所有项目根文件夹并为它们创建新的存储库?

编辑:

好的,我错误地解释了我想要的东西.我希望有一个改变我的家庭驱动器的历史,就像我可以使用Git一样,我也希望支持它.

Dav*_*ver 17

写了一篇关于这篇文章的博文:

版本控制系统(SourceSafe可能除外)非常适合跟踪代码.这是为什么?因为它们旨在跟踪代码.

不幸的是,一个好的VCS 的功能与构成一个好的备份系统的功能完全不同 - 而且往往恰恰相反.

文件所有权为例.一个好的VCS会非常正确地忽略文件所有权:当我查看别人的代码时,我应该是这些文件的所有者 - 而不是最初创建它们的任何内容.另一方面,一个好的备份系统将尽其所能保护文件所有权:当我从备份恢复时,我希望/ etc/shaddow由root拥有,而/ home/wolever /由wolever拥有.

但是,如果你真的想,请查看bup - 据我所知,它使用git"right"进行备份.

  • 请在文章中添加一些代码段,以防止[link rot](http://meta.stackexchange.com/questions/140772/link-rot-encourage-author-to-cache-snippets-of-relevant-text-为这个做准备)。 (2认同)

rmk*_*rmk 16

使用rsync备份.使用git版本控制.

  • @mk 解释为什么会有用。为什么不使用“git clone”和“git pull”来同步/备份? (2认同)

hil*_*llu 0

这读起来很像我正在做的事情。我的主目录中有一个 git 存储库,但我用它来仅跟踪那些我可以手动编辑的配置文件。(这排除了“现代”桌面环境保存的状态文件以及几乎所有以 XML 形式存储的内容。)其他所有内容都进入.gitignore. 曾几何时,我决定我的“notes”目录和我的~/.emacs.d目录应该进入它们自己的存储库,因此我在这些目录中创建了 git 存储库,并让主存储库忽略它们。

我不使用此设置进行备份,而是在不同计算机上的帐户之间同步跟踪文件,但我认为这也适用于备份。

  • 如果我在两个不同的帐户上编辑同一个文件,rsync 对我来说没有明智的解决方案。(使用 rsync 算法的 unison 可以,但在其他问题上会失败。)至少,git 可以检测并合并冲突的编辑。rsync 也没有回答“文件 X 14 天前是什么样子?”这个问题。 (2认同)