eclipse中egit插件使用(转)
1、eclipse和egit版本
eclipse使用的是kepler的SR1版,egit就是自带的那个版本,要详细的话,我就也只能把文件名贴出来了:eclipse-jee-kepler-SR1-win32.zip。
2、开始egit的简单实用
这里也就不说怎么打开eclipse了吧,怎么修改配置也就不说了吧,大家看我的eclipse和你的kepler界面有点不一样,那是我配置了的(这是题外话了),大家可以网上搜一下。egit插件是自带的,我也就不像其他的文章那样说怎么安装egit了,下面介绍怎么通过egit简单的使用开源中国的代码托管服务。
首先你需要在开源中国代码托管建一个工程(或者叫别人把你加入他的工程也可以),反正就是你要有访问一个托管工程的权限。
在eclipse中打开名字叫做“Git Repositories”的视图(如何打开?自行百度),然后复制项目的访问地址,在这个视图内Ctrl+V就可以进行配置了,或者以也可以找到按钮“Clone a……”,

弹出的界面如上,系统已经帮你填写了一些东西,你只需要将你的账号和密码填写好就可以了,接下来你需要的是点击“Next”和“Finish”然后等待(具体多久取决于网速和要下载的量)。
克隆好后效果就是这样的:

我的是空的项目,如果你的是已经有代码的项目应该还要多一个文件夹,里面放着有各种托管文件。
接下来为了演示,按照常规建一个java工程并且添加一个类,结果就像这样:

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

然后选择git,next,然后选择刚才克隆的代码库(如果只有一个不需要选),

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

然后填写好注释勾选所有的文件,点击提交并推送就行了

基本的使用就是这些,不断地写代码、提交代码、推送代码,当然这是一个人开发,用git只是记录一下代码,以后万一需要可以找回,也就是我以前的用法(现在也没好到哪里去),但是有一点大材小用了吧,接下来说一些“高级”的。
3、分支(创建、推送、使用)
分支的好处、分支的作用、为什么要分支?这些都不是我想说的(我想说也说不清,还是让那些大师去说吧),要想知道的话,请自行上网搜索哦,我接下来要说的是如何通过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分支的代码已经更新了:

分支的使用就是这些了,是不是很简单、很快捷?我们在开发中对于合并分支、提交关键代码更改这样的大事是不是需要记录一下,虽然可以看历史记录,但是还有一个更方便的东西----标签,下面就介绍如何使用标签。
4、标签(创建、推送)
如前面所说,标签就是用来记录大事件的,便于以后查看,标签不止一种,但是我不介绍(网上有的是,而且我也说不明白),需要的可以自行上网搜索。
创建标签很简单,只需在代码库的视图的”Tags“上右键,”Create tag",

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

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

借来点击一次next,然后点击“add all tag……”推送所有标签更改,当然和分支一样,新标签也会推送出去

标签使用就介绍到这里了。
5、分支、标签的删除
分支在完成该分支的开发后可能要删除(不知道最佳做法是删除还是不删除),把标签有时候需要删除(标签原则上不删除)。反正就是有时候要删除,下面介绍一下删除的做法。
为了演示删除标签,特意新建一个标签,在服务器上查看的情况是这样的:

删除标签,需要在代码库的视图上右键“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分支也最好一并删除了,方法和删除标签一样,就不截图了。
6、使用远程已有本地还没有的分支
在远程服务器上别人推送提交了一个新的分支,或者本地的代码库是刚克隆的而原来已有不止一个分支,那么本地是不会有除master(默认分支)以外的分支的(remote下面有),那么如何得到呢?
本人尝试过在remote下面的分支上checkout,但是代码出来了,更改推送不出去。那么在代码库的视图上“fetch from……”呢,这样根本就没有提示有版本变化!
经过不断尝试、探索,关键在于在local下面没有分支的记录,最后终于找到,在新建分支的窗口上,选择来源就用remote的那个分支就行,截图就像下面:

eclipse中egit插件使用(转)的更多相关文章
- eclipse中egit插件使用
这篇文章当时制作有点粗糙,建议阅读升级版:eclipse中egit插件使用--升级版 使用git作为项目的代码管理工具现在是越来越火,网上有各种各样的文章.博客.讨论,其中以命令行居多.使用eclip ...
- 【转】eclipse中egit插件使用
原文网址:http://my.oschina.net/songxinqiang/blog/192567 eclipse和git这个两个工具的使用人数都是相当多的,在eclipse里面也有egit插件来 ...
- 解决eclipse中git插件中的cannot open git-upload-pack问题
有时候在eclipse上使用插件egit向github或者osc上同步代码时,有时候会发现出现cannot open git-upload-pack这个问题. 一般引起这个问题的原因有两个:一.网络问 ...
- 解决eclipse中egit中的cannot open git-upload-pack问题
一.背景 今天在使用eclipse的egit插件进行检出远程代码到本地时,出现了cannot open git-upload-pack错误,后经过努力解决该问题,记录下方便回顾和交流! 二.出现原因 ...
- Eclipse中Egit冲突解决
Eclipse中Egit冲突解决 Git 作为进来最流行的分布式版本控制软件来说应用的十分广泛.EGit就是一款Eclipse上的Git插件.在使用Egit提交项目时,有时会产生冲突,需要对代码进行m ...
- 怎么清除SVN密码,以及重置eclipse中svn插件密码
如何清除SVN密码,以及重置eclipse中svn插件密码? 清除SVN客户端密码方法: 邮件选择TortoiseSVN中的settings选项---Saved Data---右边会发现有个Authe ...
- eclipse中svn插件的安装
Svn(Subversion)是近年来崛起的版本管理工具,在当前的开源项目里(J2EE),几乎95%以上的项目都用到了SVN.Subversion项目的初衷是为了替换当年开源社区最为流行的版本控制软件 ...
- eclipse中svn插件的安装与使用
eclipse中svn插件的安装与使用 一. eclipse中svn插件的安装 eclipse里安装SVN插件,一般来说,有两种方式: 直接下载SVN插件,将其解压到eclipse的对应目录里 ...
- eclipse中svn插件的安装和tortoiseSVN的安装
在项目的开发中一般都需要用到版本控制,其中用的比较多的就是svn(subVersion),svn的使用既可以以插件的形式,也可以以客户端的形式使用.今天就介绍一下eclipse中svn插件的2种安装方 ...
随机推荐
- 查找(二分、hash、桶)
先上一个最简单的题 1230 元素查找 给出n个正整数,然后有m个询问,每个询问一个整数,询问该整数是否在n个正整数中出现过. 输入描述 Input Description 第一行两个整数 n 和m. ...
- Storm中log4j日志打印不出来的解决办法
使用storm命令启动JAVA进程的时候,发现log4j日志打印不出来,咋办呢? 解决办法如下(亲测): 删除strom/lib目录下的log4j-over-slf4j-1.6.6.jar strom ...
- rm 命令(删除文件和目录)
rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除.对于链接文件,只是删除了链接,原有文件均保持不变. rm是一个危险的命令,使用的 ...
- 【cocos2d-js官方文档】四、基础数据类型
基础数据类型统一通过方法来创建.不再支持new方式 1.坐标cc.Point 一共3种创建方式 结构:{x:0,y:0} //1 快捷创建,返回相当于cc.p(0,0) var point1 = cc ...
- 折半搜索+状态压缩【P3067】 [USACO12OPEN]平衡的奶牛群Balanced Cow S…
Description 给n个数,从中任意选出一些数,使这些数能分成和相等的两组. 求有多少种选数的方案. Input 第\(1\)行:一个整数\(N\) 第\(2\)到\(N+1\)行,包含一个整数 ...
- 简化的INSERT语句
INSERT语句中也并不需要我们指定表中的所有列,比如在插入数据的时候某些字段没有值,我们可以忽略这些字段.下面我们插入一条没有备注信息的数据: INSERT INTO T_Person(FAge,F ...
- CodeForces - 986C AND Graph
不难想到,x有边连出的一定是 (2^n-1) ^ x 的一个子集,直接连子集复杂度是爆炸的...但是我们可以一个1一个1的消去,最后变成补集的一个子集. 但是必须当且仅当 至少有一个 a 等于 x 的 ...
- 【母函数】hdu2082 找单词
普通型母函数详解见这里:http://www.wutianqi.com/?p=596 裸题,存个板子. #include<cstdio> #include<cstring> u ...
- 【最小瓶颈生成树】【最小生成树】【kruscal】bzoj1083 [SCOI2005]繁忙的都市
本意是求最小瓶颈生成树,但是我们可以证明:最小生成树也是最小瓶颈生成树(其实我不会).数据范围很小,暴力kruscal即可. #include<cstdio> #include<al ...
- Scala实战高手****第6课 :零基础实战Scala集合操作及Spark源码解析
本课内容1.Spark中Scala集合操作鉴赏2.Scala集合操作实战 --------------------------------------------------------------- ...