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的那个分支就行,截图就像下面:

最新文章

  1. HDU 2222 Keywords Search (AC自动机)
  2. 机器学习实战——k-邻近算法:约会网站
  3. JDBC batch批处理Statement executeBatch 具体解释
  4. Ecstore中Mootools和Jquery如何同时存在,解决冲突?
  5. C4.5较ID3的改进
  6. 基于FPGA的信号消抖
  7. .NET 利用反射将对象数据添加到数据库
  8. uva 408 Uniform Generator
  9. Android开发学习之路--Camera之初体验
  10. php中生成透明背景png缩略图程序
  11. 49.Linux-wpa_cli使用之WIFI开启,扫描热点,连接热点,断开热点,WIFI关闭(49)
  12. 约定优于配置---Java的eclipse项目配置
  13. linux几个命令
  14. SDK Location not found Android Studio + Gradle
  15. iOS - 开发代码部分规范
  16. latex中文模板
  17. 我的NHibernate曲折之行
  18. Android中实现下拉刷新
  19. Python:笔记(6)——正则表达式
  20. memsql 多节点部署

热门文章

  1. 原创 gif png bmp jeg 显示方法
  2. spring quartz job autowired 出错 null pointer
  3. 在使用Arduino中遇到的问题(无法使用中文注释、程序无法下载)
  4. CF 862A Mahmoud and Ehab and the MEX【数组操作】
  5. 线段树+差分【p1438】无聊的数列
  6. 表(Table)
  7. 【kmp算法】poj2185 Milking Grid
  8. 【动态规划】Gym - 101147H - Commandos
  9. 【树链剖分】【dfs序】【线段树】bzoj2836 魔法树
  10. Linux下提示命令找不到:bash:command not found