eclipse中egit插件使用--升级版

        首先嘚瑟一下,上一篇博客成为了开源中国代码托管的“帮助”教程,有兴趣的能够在空间里面找一下。习惯使用eclipse作开发,中途也听别人说其余的IDE更好怎么的,去尝试了一下,以为仍是eclipse好,毕竟是IBM出品的。 java

        之前使用svn作代码管理,以为不错,后来使用了开源中国的git代码托管,以为很赞,可是都是简单的提交、提交,根本没有用其余功能,只是基本一下修改,太大材小用了。有一天忽然想尝试一下分支啊、标签啊什么的(听说git就是在这些方面比svn好的),但是网上资料太少了,并且大多数都是命令行的,特别是分支、标签的推送,找不到操做方法,有也只是命令行,最后实在国外的一个网站上找到(曲折中在youtube上看的抓屏)。eclipse用的人不少吧,用egit插件的人也不少吧,但是怎么一搜都会教人安装、提交变动呢,怎么没有更深刻的呢,因而我决定写一篇博客,方便后来的人学习egit插件使用,因而就有了开头说的那篇博客。可是写的并非很全面,内容也是文字少、图片多,虽说按照步骤来仍是能够操做了,可是始终以为很差,并且还有一些方面没有涵盖到,可是又很差改的(成为教程了,万一改得不如从前了呢),因此就单独写这篇了。 git

        好了,铺垫完了,下面开始正题。 服务器

一、eclipse和egit版本

        eclipse使用的是kepler的SR1版,egit就是自带的那个版本,要详细的话,我就也只能把文件名贴出来了:eclipse-jee-kepler-SR1-win32.zip。 eclipse

二、开始egit的简单实用

        这里也就不说怎么打开eclipse了吧,怎么修改配置也就不说了吧,你们看个人eclipse和你的kepler界面有点不同,那是我配置了的(这是题外话了),你们能够网上搜一下。egit插件是自带的,我也就不像其余的文章那样说怎么安装egit了,下面介绍怎么经过egit简单的使用开源中国的代码托管服务。 svn

        首先你须要在开源中国代码托管建一个工程(或者叫别人把你加入他的工程也能够),反正就是你要有访问一个托管工程的权限。 学习

        在eclipse中打开名字叫作“Git Repositories”的视图(如何打开?自行百度),而后复制项目的访问地址,在这个视图内Ctrl+V就能够进行配置了,或者以也能够找到按钮“Clone a……”, fetch

        弹出的界面如上,系统已经帮你填写了一些东西,你只须要将你的帐号和密码填写好就能够了,接下来你须要的是点击“Next”和“Finish”而后等待(具体多久取决于网速和要下载的量)。 网站

        克隆好后效果就是这样的: spa

        个人是空的项目,若是你的是已经有代码的项目应该还要多一个文件夹,里面放着有各类托管文件。 插件

        接下来为了演示,按照常规建一个java工程而且添加一个类,结果就像这样:

        而后一步一步的将这个项目托管到git中去:在项目上右键,选择“Team->Share Project"

        而后选择git,next,而后选择刚才克隆的代码库(若是只有一个不须要选),

        最后点击”Finish“就能够了,接下来就是要将代码提交到代码库中去,在项目上右键,选择”Team-->Commit"

        而后填写好注释勾选全部的文件,点击提交并推送就好了

        基本的使用就是这些,不断地写代码、提交代码、推送代码,固然这是一我的开发,用git只是记录一下代码,之后万一须要能够找回,也就是我之前的用法(如今也没好到哪里去),可是有一点大材小用了吧,接下来讲一些“高级”的。

三、分支(建立、推送、使用)

        分支的好处、分支的做用、为何要分支?这些都不是我想说的(我想说也说不清,仍是让那些大师去说吧),要想知道的话,请自行上网搜索哦,我接下来要说的是如何经过egit建立、使用、推送分支(删除的话因为是后面截的图就放在后面来讲)。

        回到代码库的视图,在关于代码库的那一行上面右击,“Switch to--》new”(若是之后有了分支直接选就是了):

        而后填写分支的名称,从哪里来,用什么方式来等,而后点击“finish”就能够了:

        因为勾选了“checkout……”因此分支建好以后咱们已经在使用新的分支了,

        接下来改动代码,添加一行打印,

        提交改变,填写说明:

        这里我直接提交并推送,可是后来才想起尚未说怎么直接推送新分支呢(我刚才的操做已经推送了新分支),下面来补充说一下怎么推送先新建的分支,在代码库的视图上右键“remote--》push”而后next,出现下图的界面

        单击“add all branches……”就会出现中间的那个“update……”了,而后finish就会把全部的分支都更新(新分支会推送出去),固然这里偷懒了。

        咱们在develop分支上更改了代码,在master分支上是没有变化的,切换过去看一下:

        服务器呢,分支develop变化了,master也是没有变化的:

        这样两个分支的代码就不同了,接下来咱们要将分支develop的代码整合到master分支中去,这也是正常的开发中要作的,在一个分支中开发(大项目甚至更多),开发好后或者主干上有重大变更时,进行代码合并。

        要将develop的代码合并进master,须要首先切换分支到master,而后再代码库视图上在本地的master上右键“merge”

        而后在弹出的界面中选择要合并进master的分支:develop:

        点击“merge”,若是有冲突的话会在代码上有标记,到时候须要解决以后再继续,合并以后的效果:

        能够看到我添加的那一条打印语句已经合并进来了,因为尚未推送,因此在项目上有一个“↑1”,那么接下来我就推送到服务器上去。在代码库的视图上右键,“remote--》push”,而后选择“add all branches……”,点击finish

        而后在服务器上就能够看到master分支的代码已经更新了:

        分支的使用就是这些了,是否是很简单、很快捷?咱们在开发中对于合并分支、提交关键代码更改这样的大事是否是须要记录一下,虽然能够看历史记录,可是还有一个更方便的东西----标签,下面就介绍如何使用标签。

四、标签(建立、推送)

        如前面所说,标签就是用来记录大事件的,便于之后查看,标签不止一种,可是我不介绍(网上有的是,并且我也说不明白),须要的能够自行上网搜索。

        建立标签很简单,只需在代码库的视图的”Tags“上右键,”Create tag",

        弹出的窗口中,填写标签的名称、说明、基于哪一版代码,而后finnish:

        接下来要作的是将标签推送到服务器,方法也是在代码库的视图上右键“remote--》push”

        借来点击一次next,而后点击“add all tag……”推送全部标签更改,固然和分支同样,新标签也会推送出去

        标签使用就介绍到这里了。

五、分支、标签的删除

        分支在完成该分支的开发后可能要删除(不知道最佳作法是删除仍是不删除),把标签有时候须要删除(标签原则上不删除)。反正就是有时候要删除,下面介绍一下删除的作法。

        为了演示删除标签,特地新建一个标签,在服务器上查看的状况是这样的:

        删除标签,须要在代码库的视图上右键“remote--》push”,而后“add all tag……”添加一栏,能够看出来标签在远程的记录是“refs/tags/*”咱们将前面的“update”单击一下变成“delete”,悲剧出现了:后面的列都不见了,没办法手动填写吧(分支还好能够辅助生成,这个只能手动,多是标签真的不该该删除吧),先前咱们知道标签在远程的记录是“refs/tags/*”,咱们旧照样子写,而后八角具体的标签名写上,就成了这个样子:

        而后点击finish远程的标签就删除了,固然为了防止下一次将这个标签推送出去,咱们须要在本地也删除这个标签,在标签上右键“delete”:

        这样服务器上的标签就没有了:

        再次提醒,标签通常不删除。

        删除分支也差很少,为了演示我也建了一个叫作delete的分支,

        删除步骤就是在代码库的视图上右键,“remote--》push”而后next,而后可使用向导生成删除请求,不用像标签那样手动写了,

        方法为:上面的上面的“Source ref:”和“Destination ref”选择要删除分支,而后点击后面的“add spec”,这个时候下面记录的是“update”咱们点击一下这个update就会变成“delete”了,而后点击finish远程服务器上的分支就会被删除,

        能够看到,服务器上已经有了delete分支,固然本地的delete分支也最好一并删除了,方法和删除标签同样,就不截图了。

六、使用远程已有本地尚未的分支

        在远程服务器上别人推送提交了一个新的分支,或者本地的代码库是刚克隆的而原来已有不止一个分支,那么本地是不会有除master(默认分支)之外的分支的(remote下面有),那么如何获得呢?

        本人尝试过在remote下面的分支上checkout,可是代码出来了,更改推送不出去。那么在代码库的视图上“fetch from……”呢,这样根本就没有提示有版本变化!

        通过不断尝试、探索,关键在于在local下面没有分支的记录,最后终于找到,在新建分支的窗口上,选择来源就用remote的那个分支就行,截图就像下面:

相关文章
相关标签/搜索