目前我使用的Eclipse luna版本中已经集成了git插件,这里就不介绍如何安装Git插件了,不懂能够看其余的博客。git
上篇笔记介绍了Git的基本指令,实际开发中我基本都使用eclipse插件进行代码提交和更新,下面就介绍下Eclipse中如何使用Git插件。eclipse
首先看一张Git管理代码原理图:fetch
从这张图中可知道Git管理代码涉及到4个地方,插件
Remote:远程仓库,或者叫远程分支,一个项目由多我的开发时,远程仓库就是中央代码库。3d
Repository:本地仓库,顾名思义就是安装在本地的代码库,这也是Git与Svn最大的区别,SVN是集中式管理,每次提交或更新代码前都要链接远程仓库,而Git由于有本地仓库,代码先提交到本地仓库,须要时再更新到远程仓库,也就是说本地代码提交和更新无需链接远程仓库,没网也能提交和更新代码。blog
Index:索引,这就要谈到上篇笔记中提到的Git的三种状态,当代码由Git托管后,工做区的代码更改后,状态会变成已修改(Eclipse中表现为代码文件上有一个>标记),那么想要提交到本地仓库,必须先将代码提交到暂存区,这个暂存区就是索引,Eclipse中的指令是Add to Index。索引
WorkSpace:本地工做空间,这个就很少解释了。ip
下面介绍实际工做中代码的提交与合并,冲突解决。开发
在你上次更新代码到远程仓库,如今准备写代码以前,先pull下远程仓库的代码,这样可将远程仓库的更改合并到本地代码,这样作的好处是一般无需手动解决冲突,由于以前你已经把本地仓库的更改推送到远程仓库了,远程仓库后面的更改也是在你的代码基础上,而你本地代码并无更改,因此这种状况下合并是最好最简单的方式。合并代码后再写代码。博客
固然你也能够省略上面这步,直接写代码,写完代码后add to Index —— commit,将代码提交到本地仓库。
记住这时别急着push到远程仓库,由于在你写代码这段时间可能其余人和你同时修改了一个文件的同一个位置,这时你要再次pull下,查看工做空间的代码有没有红色的双箭头的,若是有那就要手动解决冲突了。
如图
解决完冲突后,再次Add to Index ——Commit,更新到远程仓库前最好仍是pull,只到没有出现冲突时,再push代码。
这种方法是最保险的,保证不会影响别人的代码,也不会出错。
总结:记住在推送代码到远程仓库时,记得pull代码,有冲突解决冲突,没冲突直接push.
顺便说下pull和fetch的异同,他们都是更新远程仓库代码到本地的,不一样的是fetch完之后还须要merge一下,而pull一个指令包含了fetch和merge两个操做。
而后再说下merge和rebase的异同,他们都是用于合并代码,不一样的时rebase操做稍微复杂一些,但更仔细一些,它会将远程文件和本地文件作对比,并标记出冲突的地方,当解决完全部冲突后执行Add to Index操做,而后不要立刻执行commit操做,先执行Continue Rebase操做,而后再执行Commit操做。是否是有写麻烦?若是使用merge指令就没有Continue Rebase操做了,但解决冲突就没那么明显了,他自动将远程和本地的代码合并到本地,而后用上图中的形式标记出来。解决完冲突后执行Add to Index ——Commit操做。因此这就看你我的喜爱了。