目录
概述
Git 是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种
项目。
Git 易于学习,占地面积小,性能极快。 它具有廉价的本地库,方便的暂存区域和多个工作
流分支等特性。其性能优于 Subversion、CVS、Perforce 和 ClearCase 等版本控制工具。
版本控制
版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。
版本控制其实最重要的是可以记录文件修改历史记录,从而让用户能够查看历史版本,
方便版本切换。
为什么需要版本控制
个人开发过渡到团队协作。
版本控制工具
- 版本控制工具应该具备的功能:
1)协同修改
多人并行不悖的修改服务器端的同一个文件。
2)数据备份
不仅保存目录和文件的当前状态,还能够保存每一个提交过的历史状态。
3)版本管理
在保存每一个版本的文件信息的时候要做到不保存重复数据,以节约存储空间,提高运行效率。这方面 SVN 采用的是增量式管理的方式,而 Git 采取了文件系统快照的方式。
4)权限控制
对团队中参与开发的人员进行权限控制。
对团队外开发者贡献的代码进行审核——Git 独有。
5)历史记录
查看修改人、修改时间、修改内容、日志信息。
将本地文件恢复到某一个历史状态。
6)分支管理
允许开发团队在工作过程中多条生产线同时推进任务,进一步提高效率。
- 集中式版本控制工具:CVS、SVN、VSS
集中化的版本控制系统都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。多年以来,这已成为版本控制系统的标准做法。
好处:而管理员也可以轻松掌控每个开发者的权限,并且管理一个集中化的版本控制系统,要远比在各个客户端上维护本地数据库来得轻松容易。
缺点:中央服务器的单点故障。如果服务器宕机,谁都无法提交更新,也就无法协同工作。
- 分布式版本控制工具:Git、Mercurial、Bazaar、Darcs
分布式版本控制工具,客户端提取的不是最新版本的文件快照,而是把代码仓库完整地镜像下来(本地库)。
好处:
1、 服务器断网的情况下也可以进行开发(因为版本控制是在本地进行的)
2、 每个客户端保存的也都是整个完整的项目(包含历史记录,更加安全)
Git工作机制
Git 和代码托管中心
代码托管中心是基于网络服务器的远程代码仓库&#x