2024年4月25日发(作者:)
git使用简介
指导老师:邵志远
作者: 卓达城
邮箱: zhuodc@
单位: 华中科技大学服务计算技术与系统/集群与网格计算实验室
简介: 作者是华中科技大学2010级计算机学院计算机系统结构专业研究生
一、简介:
网上找到的git的中文资料,大部分是讲git的命令的使用,对于git的工作流程和如何
实现团队合作的介绍少之又少,特别是对于团队代码库管理者的文档,几乎没有,这份文档
将从开发者和管理者两方面介绍如何使用git进行团队合作开发。
二、git和svn的差异
git和svn最大的差异在于git是分布式的管理方式而svn是集中式的管理方式。如果不
习惯用代码管理工具,可能比较难理解分布式管理和集中式管理的概念。下面介绍两种工具
的工作流程(团队开发),通过阅读下面的工作流程,你将会很好的理解以上两个概念。
集中式管理的工作流程如下图(图2.1):
开发者
开发者
get
commit
get
commit
服务器
commit
get
开发者
图2.1
集中式代码管理的核心是服务器,所有开发者在开始新一天的工作之前必须从服务器获
取代码,然后开发,最后解决冲突,提交。所有的版本信息都放在服务器上。如果脱离了服
务器,开发者基本上是不可以工作。下面举例说明:
开始新一天的工作:
1:从服务器下载项目组最新代码。
2:进入自己的分支,进行工作,每隔一个小时向服务器自己的分支提交一次代码(很多人
都有这个习惯。因为有时候自己对代码改来改去,最后又想还原到前一个小时的版本,或者
看看前一个小时自己修改了那些代码,就需要这样做了)。
3:下班时间快到了,把自己的分支合并到服务器主分支上,一天的工作完成,并反映给服
务器。
这就是经典的svn工作流程,从流程上看,有不少缺点,但也有优点。
缺点:
1、 服务器压力太大,数据库容量暴增。
2、 如果不能连接到服务器上,基本上不可以工作,看上面第二步,如果服务器不能连接上,
就不能提交,还原,对比等等。
3、不适合开源开发(开发人数非常非常多,但是Google app engine就是用svn的)。但是一
般集中式管理的有非常明确的权限管理机制(例如分支访问限制),可以实现分层管理,从
而很好的解决开发人数众多的问题。
优点:
1、 管理方便,逻辑明确,符合一般人思维习惯。
2、 易于管理,集中式服务器更能保证安全性。
3、 代码一致性非常高。
4、 适合开发人数不多的项目开发。
5、大部分软件配置管理的大学教材都是使用svn和vss。
下面开分布式管理的工作流程,如下图(图2.2):
公共服务器
push
pull/fetch
pull/fetch
发送补丁
pull/fetch
开发者
解决冲突
本地提交
发送补丁
开发者
本地提交
主开发者
本地提交
图2.2
分布式和集中式的最大区别在于开发者可以本地提交。每个开发者机器上都有一个服务
器的数据库。
图2.2就是经典的git开发过程。步骤如下:
发布评论