对GIT和SVN的理解和日常开发常用的操作

自打入职以来,到目前为止正在做第三个项目,前两个项目用的是SVN作为代码管理工具,现在使用Git作为代码管理工具。下面浅谈一下常用的操作和我的体会,具体的命令和基础知识网络上资源很多,我这里只简单说下开发中常用的操作。由于Git刚刚使用几天,暂时阐述的不是很完善,后续加上。

一.SVN Git的区别。

SVN,就是一个中央代码库,大家的代码都放在上面统一集中管理,更新代码后就可以看得到所有人提交到服务器上的代码,如果某个人改动了你的文件并提交,那么就会冲突,这个管理工具我的理解是对版本控制的‘控制’效果不好,很难筛选的控制代码到特定版本。而且所有人需要在一个SVN服务器网络上进行操作。

Git,是一个分布式版本控制系统,最主要的区别是,每个人在本地都有一个版本库,而且引入了分支的概念。什么意思呢?就是所谓的提交commit仅仅是将代码提交到你自己电脑:即自己创建的本地的分支上(也叫作stages:字面理解暂存区),真正提交到服务端是通过push操作(字面理解就是‘推送’过去)。

进一步说,SVN是服务器上只有一个中央库。Git是服务器上有一个master主分支,我们不在这个分支上操作,通常是新建一个dev分支,clone这个分支(clone的意思是克隆,拷贝下来,相当于SVN从服务器拉取整个项目到本地),然后我们也并非在dev分支操作,而是再新建一个分支,例如myDev,myDev分支就是一个完全属于自己的,本地的分支,我们写好代码后,再把myDev与dev分支进行合并,同理,其他人写好的代码也需要合并到dev分支上。而master上通常只存放一个一直可运行的版本。dev分支进行版本控制。

二.日常开发中SVN和Git如何操作

SVN常用的流程是:比如我写了一个mapper.xml,需要提交代码。这个时候怎么做呢?

1.先从SVN服务器上拉取最新的代码,注意!提交代码之前首先要拉取!否则有很大可能会导致提交的代码和服务器上的代码冲突(有冲突的文件红色双箭头标记)!

2.拉取后查看是够有冲突,如果没有冲突,那么直接覆盖代码到本地也就是自己的项目上;如果有,先解决冲突!

3.以上处理好了,才可以提交代码,记得commit的时候加上备注,建议以一个文件夹为单位提交,比如你的daoImpl,JS文件夹这样的单位来提交。

PS:如果自己改动一个文件,但是改动乱了,想恢复到服务器的版本,那么直接右键与资源库同步,然后选这个文件覆盖本地的文件就可以了。


Git常用流程(仅针对公司内部开发,不是github哦,目前才开始接触,如果错误纰漏之处望留言指正,后续还会添加一些我实际遇到的问题)

首先是从master分支下clone出dev分支到本地,这时候你的开发工具比如eclipse就有一个项目了。然后在dev分支基础上创建一个分支,如codeDev,然后我们就可以在codeDev这个分支上进行开发了。

如何提交代码?对比SVN,假如我现在已经写了一个JSP页面,想提交到服务器上,操作如下(注意看和SVN的区别):

流程:addIndex--commit--pull -merge-push

1.(我们之前已经说了Git和SVN最大的区别在于对分支的版本控制上)将代码JSP文件addIndex(添加索引),然后Commit(注意!commit后仅仅是将这个JSP文件提交到了你本地的分支codeDev上,此时和服务器一毛钱关系也没有)

2.切换(switch to)分支到dev

3.(从这步开始的操作类似SVN了)在dev分支上pull代码(意思拉取代码------即拉取别人提交整合到dev分支的代码)

4.紧接着merge(合并)代码,将你自己在codeDev分支写的代码即JSP,和dev分支上的最新代码进行合并,注意,可能存在冲突!解决冲突方法我会在日后补上。

如果没有冲突,那么最后一步就是提交代码到服务器上了

5.push当前dev分支(其实是你自己写的那个JPS代码)到远端服务器,这样服务器上就有了你的JSP代码。

最后:此时你的项目还在dev分支上,进行开发的话,需要新建一个分支,命名,在此分支上进行开发。

PS:自己写的代码,比如你自己写的一个CSS文件,你对这个文件改名了,修改内容了,只要别人未对此做过更改,那么提交步骤如上的1-5步。

你可能感兴趣的:(工具操作)