文档详情

Eclipse中eGit插件使用.doc

发布:2017-04-19约5.13千字共30页下载文档
文本预览下载声明
Eclipse中Git插件的使用 Git的开发模式 Git是一个分布式的版本控制系统,其主要工作流程大体如下图: 安装EGIT插件 ?  HYPERLINK /egit/updates/ /egit/updates/ 或者使用Eclipse Marketplace,搜索EGit 使用EGIT前的配置 配置个人信息,最重要的是和user.email l? Preferences Team Git Configuration l? New Entry 新建GIT仓库 新建NC module project l? File Team Share Project 选择GIT 创建仓库后,在$workspace\demo目录下的.git文件夹,就是git的仓库地址。和CVS、SVN不同,GIT不会在每一个目录下建立版本控制文件夹,仅在根目录下建立仓库 同时,eclipse中的project也建立git版本控制,此时未创建分支,处于NO-HEAD状态 文件夹中的符号”?”表示此文件夹处于untracked状态,这样就成功创建GIT仓库。 配置.gitignore 此时我们尝试做一次提交 l? Team - Commit… 如上图所示,Author和Committer会默认为Git配置的用户信息。下面的Files窗口中可以看到此次提交的文件,其中有非常多带有NC_HOME的文件,此时可以猜测出,在我们的project中链接的NC_HOME也被GIT默认到版本控制中了,如下图: 显然NC_HOME和out是不需要进行版本控制的,我们可以通过配置.gitignore来排除这两个文件夹 打开Navigator窗口,在project根目录中添加.gitignore文件,将需要排除控制的目录写入.gitignore文件中 再次尝试commit,需要提交的文件已经被过滤 首次提交后,会自动生成master分支 然后在public中新建一个文件,可以看到图标依然是问号,处于untracked状态,即git没有对此文件进行监控 通过Team - Add to index可以将文件加入git索引,进行版本监控 可以看到图标显示也有了变化(EGIT中只要Commit就可以默认将untracked的文件添加到索引再提交更新,不需要分开操作) 也可以通过Team - Untrack将文件从索引控制中排除。 将此次新增的文件commit到仓库中,文件将处于unmodified状态,或者说,这就是一种staged状态 然后修改文件的内容,文件将处于modified状态 查看历史记录 Team - Show in history可以查看版本历史提交记录 ? 可以选择对比模式 ? 远程GIT仓库 此小结的前提是已经搭建GIT服务器,并通过SSH协议连接。 用户gitadmin/passw0rdadmin,GIT仓库统一存放在d:\GitRepository目录下。 首先通过shell工具连接到服务器,建立空仓库MutiLangTools.git,此时的ssh访问地址如下,分别由协议名称、用户名、IP、端口、git仓库目录组成。 ssh://gitadmin@56:22/d:/GitRepository/MutiLangTools.git 打开GIT资源库窗口,选择克隆资源库 现在已经把远程的GIT仓库克隆到本地,接下来需要将仓库检出为NC模块项目。 最后得到gitdemo模块项目,分支是mirror 推送远程仓库 克隆服务器端仓库后,会在本地建立一个一样的仓库,称本地仓库。在本地进行commit操作将把更新提交到本地仓库,然后可以将服务器端的更新pull到本地仓库进行合并,最后将合并好的本地仓库push到服务器端,这样就进行了一次远程提交。 先提交一次到本地仓库 然后push到服务器端的mirror分支,Team - remote - Push 完成推送后,可以在服务器端mirror镜像的log中查看到此次记录 解决推送冲突 多人协作开发的情况下,往服务器推送更新时难免出现冲突,所以推送之前需要解决服务器端的最新版本和本地仓库的冲突。Pull操作就是把服务器端的更新拉拢到本地仓库进行合并,解决好合并冲突后,就可以顺利push到服务器分支了。 假设现在Mairo兄弟在用GIT协作开发NewSuperMairoBro游戏,目前服务器端的mushroom.java文件的内容如下: MairoBro克隆出代码后,Mairo哥哥做了如下修改 Mairo弟弟做了如下修改 然后Mairo弟弟先push代码,Mairo哥哥使用pull来合并本地仓库和远程仓库,将发行文件出现冲突,此时GIT会自动合并冲突的文件,如下图所示: 很明显自动合并的冲突文件不能直接使用,我们可以手
显示全部
相似文档