1.Git与svn对比
-
1 Svn
SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就郁闷了。下图就是标准的集中式版本控制工具管理方式:
集中管理方式在一定程度上看到其他开发人员在干什么,而管理员也可以很轻松掌握每个人的开发权限。但是相较于其优点而言,集中式版本控制工具缺点很明显:
但是相较于其优点而言,集中式版本控制工具缺点很明显:
●服务器单点故障
●容错性差 -
2 Git
Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
下图就是分布式版本控制工具管理方式:
Git的优势
➢大部分操作在本地完成,不需要联网
➢完整性保证
➢尽可能添加数据而不是删除或修改数据
➢分支操作非常快捷流畅
➢与Linux命令全面兼容
什么是版本控制
版本控制( Revision control )是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。
●实现跨区域多人协同开发
●追踪和记载一个或者多个文件的历史记录
●组织和保护你的源代码和文档
●统计工作量
●并行开发、提高开发效率
●跟踪记录整个软件的开发过程
●减轻开发人员的负担,节省时间,同时降低人为错误
版本控制应该具备的功能
➢协同修改
多人并行不悖的修改服务器端的同一个文件。
➢数据备份
不仅保存目录和文件的当前状态,还能够保存每一个提交过的历史状态。
➢版本管理
在保存每一个版本的文件信息的时候要做到不保存重复数据,以节约存储空间,提高运行效率。这方面SVN采用的是增量式管理的方式,而Git采取了文件系统快照的方式。
➢权限控制
对团队中参与开发的人员进行权限控制。
对团队外开发者贡献的代码进行审核一一Git 独有。
➢历史记录
查看修改人、修改时间、修改内容、日志信息。将本地文件恢复到某一个历史状态。
➢分支管理
允许开发团队在工作过程中多条生产线同时推进任务,进步提高效率。