1.Git的介绍
Git是目前世界上最先进的分布式版本控制系统Git是用于Linux内核开发的版本控制工具。与CVS、Subversion一类的集中式版本控制工具不同,它采用了分布式版本库的作法,不需要服务器端软件,就可以运作版本控制,使得源代码的发布和交流极其方便。Git的速度很快,这对于诸如Linux内核这样的大项目来说自然很重要。Git最为出色的是它的合并能力。
2.版本控制工具
场景1:你是否曾经遇到下图这种情况,应该每一个经历过毕设的人都曾经有过这段噩梦吧,论文一遍遍的修改,WORD文档一遍遍的另存为。如果有个几十万字的文章其中你仅仅修改某一个片段。。。OMG。。。。
场景2:在某一阶段你给老师提交了毕设之后,在同一天你和你的毕设老师同时在这篇word文档上进行的修改,第二天老师把你的文章发回给你,让你进行合并,OMG。。。。
如果你有了版本控制工具,这一切都不是问题。版本控制工具可以帮你记录这个文档每次修改的时间、修改的记录,你也不需要存这好几篇几乎类同的文档。你将得到的是如下这种清晰的结构,并且版本控制工具能很轻松的帮助你恢复到之前的任意版本。
版本 | 修改内容 | 修改者 | 修改时间 |
1 | 修改论文标题 | 我 | 1.1 |
2 | 修改论文格式 | XX老师 | 1.3 |
3 | 修改论文3 | 我 | 1.3 |
4 | 终极修改 | 我 | 1.5 |
3.集中式和分布式的区别
a.集中式版本控制工具
集中式版本控制工具的仓库一般都会存放在一个中央服务器上,每次我们需要去修改某个文件的时候,首先需要从中央服务器上将最新的文件拉到本地,在本地进行修改后,再次上传到中央服务器上。这就需要这个中央服务器必须联网,其他客户端才能进行操作,并且需要实时保证中央服务器的安全性和稳定性,如果中央服务器挂了,那么所有客户端就不能互相之间进行版本维护。
b.分布式版本控制工具
不同于集中式版本控制工具,分布式版本控制工具理论上是可以没有中央服务器来保存版本仓库的。每个人的电脑上都有一个版本仓库,如果没有中央服务器,即使两个客户端同时在修改同一个文件时,只需在两个客户端之间互相推送修改就能完成合并了,因为相对集中来说,分布式每个客户端其实都有一个完整的版本仓库。
但是,在实际应用的过程中,我们一般也会有一台中央服务器来管理和处理大家的修改,避免你需要合并修改的那台客户端挂了或者没有启动等原因。
4.Git!分布式之王!
分布式版本控制系统除了Git以及促使Git诞生的BitKeeper外,还有类似Git的Mercurial和Bazaar等。这些分布式版本控制系统各有特点,但最快、最简单也最流行的依然是Git!