Git&GitHub三、版本控制工具(集中式版本控制工具和分布式版本控制工具)

①git和svn都是版本控制工具。区别:

git和svn都是版本控制工具,git和svn是同一类的软件。svn是集中式版本控制工具的典型代表,集中式版本控制工具容易出现单点故障。而git是分布式版本控制工具的典型代表。分布式版本控制工具可以避免单点故障。它们二者之间既有相似的地方,又有不同的地方。

②版本控制工具应该具备的功能:

协同修改:多人并行不悖的修改服务器端的同一个文件。

数据备份:不仅保存目录和文件的当前状态,还能够保存每一个提交过的历史状态。

版本管理:版本控制工具可以保存迭代过程中的每一个版本。版本在迭代的过程中,肯定是有重复的数据的。我们要做到每一次保存迭代的版本时,不保存这些重复的数据。在保存每一个版本的文件信息的时候,要做到不保存重复数据,以节约存储空间,提高运行效率。这方面SVN(集中式版本控制工具的代表)采用的是增量式管理的方式。即每次只保存有修改的那么一点点,做出的改动进行保存。然后如果要这个文件,把之前的状态进行拼接,就是目前最新的。而Git采取的是对文件系统进行快照的方式。每次保存的是文件系统的一个快照。后面会具体介绍。

权限控制:对团队中参与开发的人员进行权限控制。不能让参与开发的所有人员对所有的资源都有权限。不加任何限制,这个是很危险的。比如说:测试人员应该只有只读的权限。开发人员只对负责的模块有读写的权限。等等。svn和git都有这种功能。而git还有一种独有的功能,这种功能是svn没有的。当有团队外的开发者向我们贡献代码,git可以对团队外的开发者提供的代码进行审核。审核通过后,可以merge。但是svn授权的人员可以贡献代码,没有授权的人员不能贡献代码,svn的界限非常清晰。git在没有授权的人员即团队外开发人员,也可以贡献代码,只不过需要审核一下,审核通过了,没有授权即团队外的开发人员也可以贡献代码。这是Git独有的。

历史记录:当把每一个提交的版本管理起来,自然就会形成历史记录。通过历史记录可以查看修改的人、修改时间、修改内容、日志信息。还可以将本地文件恢复到某一个历史状态。

分支管理:基本上所有的版本控制工具都支持分支。允许开发团队在开发项目的工作过程中,允许多条生产线同时推进任务,这个多条生产线可能是对应不同的功能,也可能是对应bug的修复,也可能是对应某些不太确定的思路的尝试,等等。这些都是看具体工作过程中的实际需要。分支管理让多个不同小组同时去工作,进一步提高效率。

发布了122 篇原创文章 · 获赞 1 · 访问量 3558

猜你喜欢

转载自blog.csdn.net/lbh19630726/article/details/103773718