我曾使用过
CVS、
Subversion、
git以及一些商业软件包。我刚刚将个人版本控制系统从CVS迁移到了git(我原以为这会比实际情况更困难,早就应该做了)。
根据你的需求,我推荐使用git。
我是一个没有太多版本控制系统经验的新手
git可能有一个较长的学习曲线,尤其是如果你有之前版本控制系统的经验。如果没有接触过之前的版本控制系统,你的学习曲线可能会更短。
学习git的最佳方法是下载
Pro Git by Scott Chacon这本书(免费),创建一个测试仓库(
mkdir <project name>; cd <project name>; git init
),然后开始动手操作。创建仓库并不需要太多的努力,而且在测试仓库中出错也没关系,因为每个仓库都是独立的。可以很容易地删除一个仓库(
cd <project name>; rm -rf .git
)。
有一些文件是纯文本文件,但也会有一些Libre-Office文件。
对于git来说,文件类型(ASCII vs binary)没有区别,但是ASCII文件更适合查看差异和合并冲突。
易于设置、运行和维护。
git可以根据您的需求以多种方式进行配置。首先,如果您只是一个人在用,您只需要安装git(
sudo apt-get install --install-recommends git-core
)并创建一个仓库(如上所示)。如果您在多台机器上工作,您可以设置通过ssh使用git(书中有介绍)。更好的是,随着您的需求扩大,您不会丢失已经完成的工作。
具有易于理解的配置选项(要跟踪哪些目录,要持续多长时间,更改应该多频繁地捕获等)
您可以拥有一个大的仓库,或者将其拆分为单独的项目或单个文件。再次创建一个git仓库并尝试一下,看看哪些方法奏效,哪些不奏效。
最理想的情况是还有一个图形界面
有很多专门处理不同任务的
git guis。然而,强烈建议从命令行学习git。要开始学习,您只需要掌握几个命令(
git init
、
git status
、
git diff
、
git add
、
git rm
、
git commit
、
git push
、
git 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")
如果你更喜欢图形用户界面(GUI),
SmartGit对新手非常友好。
能够恢复已删除的文件
是的,只要文件已经提交,git可以恢复任何版本的任何文件。
什么是最好/最广泛使用的适合我的工具?
git被广泛使用。至于最好的工具,它是最好的之一,如果不是最好的。但是最好是一个个人观点,并且也取决于具体情况。