eclipse egit(分支管理 上)

这一章比较重要,讲述了Git比svn强大的地方,直接转载廖雪峰老师的文字,更好的理解 什么是分支 和 为什么分支git比svn做的更好


分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了。如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险。 


现在有了分支,就不用怕了。你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又不影响别人工作。 


其他版本控制系统如SVN等都有分支管理,但是用过之后你会发现,这些版本控制系统创建和切换分支比蜗牛还慢,简直让人无法忍受,结果分支功能成了摆设,大家都不去用。 


但Git的分支是与众不同的,无论创建、切换和删除分支,Git在1秒钟之内就能完成!无论你的版本库是1个文件还是1万个文件。 

我们看看怎么在eclipse中创建分支并实际应用。

在以前的版本中,我们知道git对每个项目都有一个默认的时间线,就是master分支,每次提交,Git都把它们串成一条时间线,然后有一个head指针,Git用master指向最新的提交,再用HEAD指向master,就能确定当前分支,以及当前分支的提交点。

首先,我们创建dev分支,然后切换到dev分支:

在git repositories中,点击该项目的 branches,-》右键switch to -》new branch,并且head已经默认指向了“dev”分支,以后你的每次提交都是在‘dev’上操作,已经跟‘master’分支无关了。 
这里写图片描述

现在history框是这样的: 
这里写图片描述

我们在demo.Java文件中 添加一个方法 dev(),然后commit(提交), 
head指针已经不指向master分支,而是跟着‘dev’分支形影不离。 
这里写图片描述

当我们切换回‘master’分支最新的提交点(在master分支上点checkout),dev()方法不见了: 
这里写图片描述

那我们假如dev分支上的活干完了,该怎么合并到master分支上呢?

1.在git repository界面 先切换回‘master’分支(右键master-》checkout) 
这里写图片描述

2.然后右键master-》merge..,注意fast forward options选第二项,可以在History框看到分支合并的详细信息,能看出来曾经做过合并 
这里写图片描述

3.在Local文件夹中选择你需要合并到’master’分支中的分支,在这里当然是选择’dev’分支。然后点merge就行。 
这里写图片描述

从上面的history框就可以看到现在head重新指向了‘master’分支,而‘dev’分支的内容已经被合并。

原文地址:https://www.cnblogs.com/duex/p/6390014.html