那么Git到底有哪些厉害的地方,会让这么多人选择它呢?
1. 免费、开源
2005年,为了管理Linux内核程序代码,Linux内核的作者Linus Trovalds仅用了10天时间就开发出了Git。粗略算来,至今已有十几年的历史了。除了可免费使用外,整个Git的源代码也可以在互联网上获取(当然Git的源代码也是用Git做版本控制的)。
2. 速度快、文件体积小
如果使用前面提到的“复制+粘贴法”,那么这些备份的目录会占用大量空间。其他的版控系统大多是记录每个版本之间的差异,而不是完整地备份整个目录,所以整个目录的大小不会快速地增加。
Git的特别之处在于,它并不是记录版本的差异,而是记录文件内容的“快照”(snapshot),可以非常快速地切换版本。至于什么是“快照”,在后面的章节中会有更详细的介绍。
3. 分布式系统
对我来说,这可能是Git最大的优点了。其他的版本控制系统,比如CVS或SVN之类的集中式的版控系统(Centralize Version Control),都需要有一台专用的服务器,所有的更新都要与这台服务器沟通。也就是说,一旦这台服务器坏了,或者处于没有网络连线的环境下,就无法使用了。
而Git是一款分布式的版控系统(Distributed Version Control),虽然通常也会有共同的服务器,但即使在没有服务器或在没有网络的环境下,仍然可以使用Git进行版控,待服务器恢复正常运行或移到有网络的环境后再进行同步,不会受到影响。事实上,在使用Git的过程中,大多数的Git操作在计算机本机上就可以完成。
如果非要说Git的缺点,那大概就是易学难精。虽然Git的指令非常多,而且有的指令有点复杂,但平常会用到的指令并不多。根据“80/20法则”,大概20%的指令就足以应付80%的工作。
除了终端机(或命令提示符)环境下的Git指令外,还有很多实用的图形界面工具,让使用者不用输入复杂的指令就可以享用Git强大的功能。本书将使用终端机指令来解释概念,并以图形界面工具(如SourceTree)来辅助说明Git是怎样运行的。