SVN与Git的区别
SVN与Git的区别
1.2.1SVN集中式版本控制系统
SVN版本控制系统是集中式的数据管理,存在一个中央版本库,所有开发人员本地开发所使用的代码都是来自于这个版本库,提交代码也都必须提交到这个中央版本库。
SVN版本控制系统工作流程如下:
1.在中央库上创建或从主干复制一个分分支。
2.从中央库check out下这个分支的代码。
3.增加自己的代码文件,修改现存的代码或者删除代码文件。
4.commit代码,假设有人在刚刚的分支上提交了代码,你就会被提示代码过期,需要先svn up你的代码后再提交。svn up代码的时候如果出现冲突,需要解决好后再进行提交。
缺点:svn服务器连不上,svn提交不了代码
Git分布式版本控制系统
git中没有了中央版本库的说法,但是为了开发小组的代码共享,我们通常还是会搭建一个远程git仓库。
但是和svn不同的是,开发者本地也包含了一个完整的git仓库,从某种程度上说本地的仓库和远程的仓库在身份上是等价的,没有主从之分。
如果是闭源项目,或者你习惯于以往的集中式的管理模式的话,那么在git下你也可以像SVN那样的工作,只是流程中可能会增加一些步骤。
1.你本地创建一个git库,并将其add到远程git库中。
2.你在本地添加或者删除文件,然后commit,当然commit操作都是提交到本地的git库中。(其实提交到git目录下的objects目录中)
3.将本地git库的分支push到远程git库的分支,如果这个时候远程git库中已经有别人push过,那么远程git库将不允许你push,这时候你需要先pull,如果有冲突,先处理好冲突,commit到本地git库后,再push到远程git库。
从上面的描述我们可以看到,我们每个开发人员的本地都会有一个git库,我们可以随时进行commit而不需要联网,可以随时查看历史版本,当某一个功能点开发完了之后我们可以将commit后的内容push到远程git库了,如果远程git库的版本在你上次clone或者pull之后变化了,那么需要进行pull并处理冲突,提交之后,在push到远程git库。