文档介绍:流程如下:
下载Ecliplse Git plugin并安装
将自己本机证书公钥上传到github上自己注册的账号下,以便建立可靠的SSH(HTTPS)通信
在github上自己注册的账号下Fork某个项目,以后针对此项目进行提交和代码修改工作
Eclipse里Clone自己Fork的项目,做代码更新并提交
在github网页上到自己的Fork项目下生成一个Pull Request请求,请求作者合并自己的代码
Eclipse中同步(pull)官方项目代码并Merge变化到自己的项目中
截图操作说明:
下载egit插件安装
配置自己的账号信息:
拥有 git 后,我们还需要对 git 进行简单的配置, Window->Preferences->Team->Git->Configuration,点击 Add Entry ,配置 email 和 name,当然还可以是一些其他的信息,当提交代码时,这些信息会自动被读取提交。
没有github账号则登录官网并注册,github 官网( https://),输入用户名、邮箱、密码,点击 Sign up for GitHub。
Fork某个项目
在开源项目上点击右边的Fork,就可以Fork到自己项目里了。
https:///MyCATApache/Mycat-Server
然后在Eclilspe中,Import Git项目,将自己Fork的地址写入URL:
Clone一个项目:
注意,URL哪里需要添加自己Fork的路径,而非官网地址:
项目的右键菜单,可以出现几个与Git操作有关的菜单:
Team子菜单里是常用操作
Compare子菜单用来比较代码版本的差别
Replace With则用来在代码冲突以后的替换
这里有几个操作需要注意理解:
Commit,本地修改代码验证无误后,mit按钮提交到本地仓库,提交到本地仓库的所有代码,都有历史记录,以后可以回滚,若没有提交过,则本地仓库版本中不存在记录,无法回滚,只能依靠Eclipse的Restore from Local History …这个低级办法(没有版本信息)
Push:提交到本地代码库的代码,最终通过Push 提交回远程仓库,没有Push到或者Push失败的,则远程仓库中没有版本记录,mit。
Pull:此命令是从远程仓库中获取最新的代码,相当于SVN的checkout,当Pull代码以后,若有代码变动,则Ecliplse中相关Java类会有图标提示变动的类,因为Pull的结果与本地仓库的版本不一致了,此时,若没有发生版本冲突,则可以Merge到本地仓库,即接受此变动,有版本冲突的情况,则需要核对解决冲突,mit到本地仓库,最终Push回远程仓库。
Merge:当本地仓库代码有远程仓库代码有冲突以后,需要Merge命令进行合并,不能自动合并的,需要手工比对合并。
几个技巧点:
1:如何发现自己Fork的项目与官方项目有版本差别:
到自己的项目主页,会有提示:this branch is even with ….表示是同步的,否则则提示有落后情况。
2:若落后了怎么办? 需要手工同步;
Eclipse中,重新Pull 官方地址,将Pull的地址临时改为官方地址,Pull一遍即可,项目右键菜单,Team-Remote->Configure fetch from Upstream:
项目地址点击Change ,改为官方项目地址,用户名密码不用填写,点击 Dry-Run,完成Fetch,注意这里不要Save或Save And Fetch,因为是临时使用:
Pull完成并更新以后,若出现冲突,则需要Merge:
mit,若Merge成功,则可以提交回自己的Fork地址,此时仍然右键菜单,不过是选择Remote的Configure Push to Upstream: