Eclipse中Git插件的使用(图文表述)

1、安装egit插件(高版本的eclipse会自带git插件)

Eclipse中Git插件的使用(图文表述)

点击install newsoftware

Eclipse中Git插件的使用(图文表述)

进入此界面。点击Add输入插件下载地址:http://download.eclipse.org/egit/updates进行下载

一路NEXT下来即可实现安装;(现在的GIT需要依赖mylyn功能)。

OK,随后连续下一步默认安装就可以,安装后进行重启Eclipse。

1、Git版本库的使用

2.1  Git的配置

Window-->Preference-->Team-->Git-->Configuration

可以设置我们提交代码时的名字和email由于之前安装git生成公钥的时候已经配置过所以这里会自动带出

2.2   我们使用一个比较小的项目作为演示

Clone远程仓库代码到本地,将代码部署到Eclipse中。

Eclipse中Git插件的使用(图文表述)

可以使用git branch –a 的命令来查看当前本地仓库和远程仓库的分支

Eclipse中Git插件的使用(图文表述)

我们可以看到当前本地仓库只有一个master分支远程仓库也只有一个master分支,HEAD是个指针,指向当前活动的分支。

2.2.1 Git的本地提交

打开test.java类

Eclipse中Git插件的使用(图文表述)

对他进行修改并保存

Eclipse中Git插件的使用(图文表述)可以看到当前类前面有个>符号表示我们进行了文件修改。

            右键此文件

          Eclipse中Git插件的使用(图文表述)

                            选择点击Team中的Add to Index

                           Eclipse中Git插件的使用(图文表述) 文件下会有个黑色的星号表示未提交

                            点击Team中的Commit进行提交跳转到提交界面

                           Eclipse中Git插件的使用(图文表述)

                            在Commit Message处输入提交信息进行提交。

                            点击Commit后即完成本地提交。

2.2.2     Git的远程推送

    本地提交完成后 

Eclipse中Git插件的使用(图文表述)

    我们可以看到项目名称后有有个向上的箭头表示有意个本地提交领先于远程

    右键项目名点击Team-->Remote-->Push进入远程推送界面

Eclipse中Git插件的使用(图文表述)

Eclipse中Git插件的使用(图文表述)

选择本地master分支及远程master分支点击Add Spec添加到Add Specifications for specifications里

Eclipse中Git插件的使用(图文表述)

    依次点击next点击finish 点击ok完成远端推送

    此时Eclipse中Git插件的使用(图文表述)表示代码已经推送完成

2.2.3     Git的分支创建

右键项目Team-->Switch To-->New Branch

Eclipse中Git插件的使用(图文表述)

输入分支名称。点击finish完成分支创建

Eclipse中Git插件的使用(图文表述)   Eclipse中Git插件的使用(图文表述)

此时我们本地有两个分支master分支和dev分支dev分支前面有个*好表示当前本地仓库指向dev分支

使用Team-->Push Branch ‘dev’将新建的dev分支提交到远程

Eclipse中Git插件的使用(图文表述)  Eclipse中Git插件的使用(图文表述)

我们可以看到远程上多出了dev这个分支

Eclipse中Git插件的使用(图文表述)

我们新建一个文件并修改其他两个文件我们可以看到新建的文件下面有个问号

然后我们进行分支的本地提交与远程提交

注意我们本地仓库此时是指向Eclipse中Git插件的使用(图文表述)dev分支的

提交步骤与与2.2.1Git的本地提交步骤相同

本地提交完成之后进行远程推送

步骤与2.2.2 Git的远程推送相同

Eclipse中Git插件的使用(图文表述)

但是要选择将本地的dev分支推送到远程的dev分支上

2.2.4     分支的切换

Eclipse中Git插件的使用(图文表述)

使用Team-->Switch To我们可以看到下级菜单中出现了dev和master两个分支点击master即可切换到master分支

Eclipse中Git插件的使用(图文表述)

切换回来可以看到master分支只有两个文件,我们在dev中增加了一个新的文件

 

2.2.5     比较分支

右键项目选择Team-->Compare With-->Branch,Tag,orReference

Eclipse中Git插件的使用(图文表述)

选择一个分支跳转到Team Synchronizing界面

Eclipse中Git插件的使用(图文表述)

选择左边对话框中的文件即可进行对比

2.2.9     合并分支

我们需要修改两个分支中的文件然后进行合并

此时要切换到master分支将dev分支的合并到master分支

右键项目选择Team-->Merge

Eclipse中Git插件的使用(图文表述)

进入分支合并界面选择local dev分支的最后一次提交点击merge

Eclipse中Git插件的使用(图文表述)

此时项目上显示有两个未推送远程,右键项目选择Team-->Remote-->Push

Eclipse中Git插件的使用(图文表述)Eclipse中Git插件的使用(图文表述)

将master分支推送到远程

Eclipse中Git插件的使用(图文表述)

分支合并结束

2.2.9     分支冲突

接2.2.6点击merge后若我们的两个分支有冲突git的自动合并不能帮我们进行合并则会提示下图

Eclipse中Git插件的使用(图文表述)

表示我们的test类两个分支有冲突不能进行合并,需要我们手动调整代码后进行保存

上图表示HEAD也就是它指向的master分支与dev分支的这句代码存在冲突

我们修改冲突后应把<<<<<<<HEAD   =======   >>>>>>> refs/heads/dev 删掉

然后点击Team-->Add to Index

点击Team-->Commit

Eclipse中Git插件的使用(图文表述)

填写提交信息后将文件提交本地

最后将master分支推送到远程仓库上

2.2.9   本地分支的删除

右键项目名Team-->Advanced-->DeleteBranch

Eclipse中Git插件的使用(图文表述)

选择local-->dev分支

Eclipse中Git插件的使用(图文表述)

点击ok删除分支

Eclipse中Git插件的使用(图文表述)Eclipse中Git插件的使用(图文表述)

此时可以看到我们本地只有一个master分支了

2.2.9   远程分支的删除

右键项目Team-->Remote-->Push

Eclipse中Git插件的使用(图文表述)

Add delete refspecification下选择dev分支点击Add Spec

Eclipse中Git插件的使用(图文表述)

点击next—>Finish—>ok

我们切换到Git视图

Eclipse中Git插件的使用(图文表述)

可以看到本地和远程仓库都只剩下一个master分支了

我们可以从Git bash中查看一下

Eclipse中Git插件的使用(图文表述)

此时显示远程的dev分支已经被删除

2.3   Git插件History的使用

右键项目选择Team—>Show in History

Eclipse中Git插件的使用(图文表述)

点击Show in History进入History界面

Eclipse中Git插件的使用(图文表述)

在此处我们可以看到我们提交的历史图及我们提交的文件

蓝色的线代表master分支黄色的线代表我们新建的dev分支,我们可以看到dev分支合并到了master分支上面

下方表示我们提交的文件

Eclipse中Git插件的使用(图文表述)

点击文件乐意看到与上一版本的差异处

2.4   .gitignore文件配置

Eclipse中Git插件的使用(图文表述)

通过上图我们可以看到有些文件是eclipse生成的,我们不需要版本控制。

所以我们可以通过配置.gitignore文件

Eclipse中Git插件的使用(图文表述)

Eclipse中Git插件的使用(图文表述)

我们可以通过此文件来忽略不必要的提交文件。

可借鉴:http://www.cnblogs.com/haiq/archive/2012/12/26/2833746.html

2.5   文件的历史版本对比与回滚

右键文件名称选择Team-->Show LocalHistory

Eclipse中Git插件的使用(图文表述)

显示文件的历史版本

Eclipse中Git插件的使用(图文表述)

选择一个版本右键选择CompareCurrent with Local

Eclipse中Git插件的使用(图文表述)

可以展示出本地文件与历史版本的差异

Eclipse中Git插件的使用(图文表述)

查看完版本差异后若想要回滚文件则右键想要回滚的版本

选择Get Contents,弹出对话框

Eclipse中Git插件的使用(图文表述)Eclipse中Git插件的使用(图文表述)

点击yes即可进行版本回滚

2.6   拉取远程分支到本地

Eclipse中Git插件的使用(图文表述)Eclipse中Git插件的使用(图文表述)

从上图我们可以看出来我们本地只有一个master分支远端有masterdev两个分支

此时我们右键项目选择Team-->Showin Repositiones View

Eclipse中Git插件的使用(图文表述)

进入此界面

Eclipse中Git插件的使用(图文表述)

右键origin/Checkout获取远端的dev分支

 备注:

1、使用eclipse插件提交项目至远程仓库必须先本地提交,最后提交至远程仓库

2、查看谁提交了代码,项目右键 team--show history

3、查看修改记录 team--show in history

4、撤销恢复修改 replace with--head revision

5、更新项目远程仓库 team--pull

6、查看哪些文件被修改 team--synchronize workspace

7、提交项目时注意忽略不必要的文件或文件夹,如maven项目下的target文件

8git提供了多重协议用来连接git服务器,其中最常见的就是httpsgit,git就是可以免用户和密码的;

不同协议,项目连接地址是有区别的,如下:https形式:https://github.com/XXX/pbqshop.gitgit形式:[email protected]:XXX/pbqshop.git

撤销本地全部没有git add过的修改

git checkout -- .

使用库上文件覆盖本地修改(当然是指用本地库覆盖)git checkout file_name

回退掉某一次commit,回退方式是自动生成一个反向的commit,不会影响其他commmitgit revertcommitID

git库状态强制回退到某个节点号,这个节点号之后的commit全部丢失git reset --hardcommitID

将远端库强制覆盖到本地,放弃本地全部修改git reset --hard origin 分支名

回退最近一次的commit,且该次commit所作的修改会退到没有被add的状态git reset --mixed HEAD~1

回退最近的一次commit,回退后该次commit所作的修改仍处于add过了的状态,可以通过git status查看状态,git reset --soft HEAD~1

回退最近一次的commit,回退的同时working tree也会被修改,也就是回退的这次的commit所做的修改都会消失git reset --hard HEAD~1