使用哪个版本控制系统?

des*_*ukh 5 versions version-control software-recommendation

我正在考虑使用版本控制系统来确保我可以及时返回到 ~ 中所有文档的特定版本,如果必须的话。

鉴于以下情况,最适合的工具是什么:

  • 我在版本控制系统方面没有太多经验
  • 几个文件将是纯文本文件,但也会有一些 Libre-Office 文件

该工具应该:

  • 易于设置、运行和维护
  • 具有易于理解的配置选项(要跟踪的目录、跟踪多长时间、应捕获更改的频率等)
  • 理想情况下也有一个 GUI 前端
  • 能够恢复已删除的文件

最适合我的/使用最广泛的工具是什么?

mmo*_*ris 8

我使用过CVSSubversiongit和一些商业包。我刚刚将我的个人 VCS 从 CVS 迁移到 git(我认为这会比实际情况更困难,我早就应该这样做了)。

我会推荐git。根据您正在寻找的内容。

我是一个没有太多版本控制系统经验的菜鸟

git可能有更长的学习曲线,特别是如果您有以前的 VCS 经验。如果没有接触过以前的 VCS,您的学习曲线可能会更短。

学习 git 的最佳方法是下载Scott Chacon所著的Pro Git一书(免费),创建一个测试存储库 ( mkdir <project name>; cd <project name>; git init),然后对其进行破解。创建存储库真的没有任何努力,也不必担心在测试存储库中搞砸了,因为每个存储库都是独立的。可以轻松删除存储库 ( cd <project name>; rm -rf .git)。

几个文件将是纯文本文件,但会有一些 Libre-Office 文件

git 在文件类型(ASCII 与二进制)上没有区别,但是 ASCII 文件最适合查看差异和合并冲突。

易于设置、运行和维护

git 可以通过多种方式进行配置,这完全取决于您的需求。对于初学者来说,这是一个多节目,您所要做的就是安装 git ( sudo apt-get install --install-recommends git-core) 并创建一个存储库(如上所示)。如果你在多台机器上工作,你可以通过 ssh 设置 git(这在书中)。更好的是,随着您的需求扩大,您不会失去已经完成的工作。

具有易于理解的配置选项(要跟踪的目录、跟踪多长时间、应捕获更改的频率等)

您可以拥有一个大型存储库,也可以将它们分解为单个项目或单个文件。再次创建一个 git 存储库并使用它,看看哪些有效,哪些无效。

理想情况下也有一个 GUI 前端

有许多git guis专门处理许多不同的任务。但是,强烈建议从命令行学习 git。要开始使用,您只需要学习一些命令(git initgit status git diffgit addgit rmgit commitgit pushgit pull)。命令行还可以帮助您完成需要执行的任务。例如:git status

# On branch master
# Your branch is ahead of 'origin/master' by 2 commits.
#
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   modified:   systems/ion/setup.txt
#   modified:   systems/dogstar/teardown.txt
#   modified:   applications/help.html
#   modified:   applications/readme.txt
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   applications/faq.html
no changes added to commit (use "git add" and/or "git commit -a")
Run Code Online (Sandbox Code Playgroud)

如果您更喜欢 GUI,SmartGit 对新手友好。

能够恢复已删除的文件

是的,只要已提交,git 就可以恢复任何文件的任何版本。

最适合我的/使用最广泛的工具是什么?

git 被广泛使用。就最好的而言,即使不是最好的,也是最好的。但成为最好的,更多的是个人意见,也是基于情况的。


pho*_*bos 6

事情是这样的声音,我想使用版本控制一样git,水银hgbzr或者svn是不适合你的需求完美契合,因为它们主要针对的源文件,而不是二进制数据。因此,我想在这里添加一些额外的可能性。

我认为一个不错的解决方案是基于云的备份服务。我个人使用SpiderOak,效果非常好。

似曾相识

用途duplicity作为其后端。

优点

  • Ubuntu 自己的备份解决方案
  • 好简单
  • 您希望备份去哪里的许多选项

缺点

  • 更多的是备份解决方案,而不是版本控制
  • 控制有限

如果它还没有,请安装它:

sudo apt-get install deja-dup 
Run Code Online (Sandbox Code Playgroud)

如果输入 ,则可以在破折号中找到它backup

蜘蛛橡木

优点

  • 可用的 Ubuntu 软件包,将存储库添加到sources.list(自动更新)
  • 您可以选择任何文件夹进行备份(与保管箱不同)
  • 在后台运行,监视这些文件夹中的更改并仅上传更改(节省带宽),这是自动且立即的
  • 客户端加密(与保管箱不同)
  • 识别重复项
  • 压缩服务器上的文件
  • 将已删除的文件和旧版本保留在其服务器上(只要您在那里有可用的存储空间),除非您明确删除它们
  • 漂亮的图形用户界面
  • 可以在计算机之间同步(Linux / Windows / OS X,只读移动客户端)
  • 基于云 - 即使您的硬盘崩溃,您仍然有备份

缺点

  • 基于云 - 需要互联网连接
  • 不完全开源
  • 只有 2 GB(无耻的插头:如果你想要额外的 GB,你可以使用我的推荐链接

在这里下载SpiderOak 下载

rdiff-备份

优点

  • 可以进行本地或远程备份
  • 细粒度控制
  • rsync 算法,只跟踪变化
  • 节省空间(未更改的文件不受影响)
  • 文件权限也可以存储
  • 可以保留最近 n 个版本或最近 n 天的备份

缺点

  • 必须由 cronjob 运行或显式运行
  • 命令行实用程序(如果这不是你的东西),但有一个可用的 GUI:Pybackpack

通过以下方式安装:

sudo apt-get install rdiff-backup pybackpack
Run Code Online (Sandbox Code Playgroud)

BTRFS 快照

虽然不适合胆小的人,但有可能将您的/home目录放在单独的 BTRFS 分区上并偶尔创建该分区的快照

优点

  • 非常节省空间,只再次存储更改的文件
  • 跟踪分区的所有数据
  • 快速地
  • 挂载任何较旧的快照以访问以前的版本

缺点

  • BTRFS 仍然相对较新
  • 对新手不友好
  • 仅命令行
  • 需要对系统进行一些修补
  • 不是备份解决方案 - 如果您的硬盘崩溃,所有版本都将丢失

Ubuntus 帮助页面上有一个 howto 。