1、安装egit插件(高版本的eclipse会自带git插件)
点击install newsoftware
进入此界面。点击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中。
可以使用git branch –a 的命令来查看当前本地仓库和远程仓库的分支
我们可以看到当前本地仓库只有一个master分支远程仓库也只有一个master分支,HEAD是个指针,指向当前活动的分支。
2.2.1 Git的本地提交
打开test.java类
对他进行修改并保存
可以看到当前类前面有个>符号表示我们进行了文件修改。
右键此文件
选择点击Team中的Add to Index
文件下会有个黑色的星号表示未提交
点击Team中的Commit进行提交跳转到提交界面
在Commit Message处输入提交信息进行提交。
点击Commit后即完成本地提交。
2.2.2 Git的远程推送
本地提交完成后
我们可以看到项目名称后有有个向上的箭头表示有意个本地提交领先于远程
右键项目名点击Team-->Remote-->Push进入远程推送界面
选择本地master分支及远程master分支点击Add Spec添加到Add Specifications for specifications里
依次点击next点击finish 点击ok完成远端推送
此时表示代码已经推送完成
2.2.3 Git的分支创建
右键项目Team-->Switch To-->New Branch
输入分支名称。点击finish完成分支创建
此时我们本地有两个分支master分支和dev分支dev分支前面有个*好表示当前本地仓库指向dev分支
使用Team-->Push Branch ‘dev’将新建的dev分支提交到远程
我们可以看到远程上多出了dev这个分支
我们新建一个文件并修改其他两个文件我们可以看到新建的文件下面有个问号
然后我们进行分支的本地提交与远程提交
注意我们本地仓库此时是指向dev分支的
提交步骤与与2.2.1Git的本地提交步骤相同
本地提交完成之后进行远程推送
步骤与2.2.2 Git的远程推送相同
但是要选择将本地的dev分支推送到远程的dev分支上
2.2.4 分支的切换
使用Team-->Switch To我们可以看到下级菜单中出现了dev和master两个分支点击master即可切换到master分支
切换回来可以看到master分支只有两个文件,我们在dev中增加了一个新的文件
2.2.5 比较分支
右键项目选择Team-->Compare With-->Branch,Tag,orReference
选择一个分支跳转到Team Synchronizing界面
选择左边对话框中的文件即可进行对比
2.2.9 合并分支
我们需要修改两个分支中的文件然后进行合并
此时要切换到master分支将dev分支的合并到master分支
右键项目选择Team-->Merge
进入分支合并界面选择local dev分支的最后一次提交点击merge
此时项目上显示有两个未推送远程,右键项目选择Team-->Remote-->Push
将master分支推送到远程
分支合并结束
2.2.9 分支冲突
接2.2.6点击merge后若我们的两个分支有冲突git的自动合并不能帮我们进行合并则会提示下图
表示我们的test类两个分支有冲突不能进行合并,需要我们手动调整代码后进行保存
上图表示HEAD也就是它指向的master分支与dev分支的这句代码存在冲突
我们修改冲突后应把<<<<<<<HEAD ======= >>>>>>> refs/heads/dev 删掉
然后点击Team-->Add to Index
点击Team-->Commit
填写提交信息后将文件提交本地
最后将master分支推送到远程仓库上
2.2.9 本地分支的删除
右键项目名Team-->Advanced-->DeleteBranch
选择local-->dev分支
点击ok删除分支
此时可以看到我们本地只有一个master分支了
2.2.9 远程分支的删除
右键项目Team-->Remote-->Push
在Add delete refspecification下选择dev分支点击Add Spec
点击next—>Finish—>ok
我们切换到Git视图
可以看到本地和远程仓库都只剩下一个master分支了
我们可以从Git bash中查看一下
此时显示远程的dev分支已经被删除
2.3 Git插件History的使用
右键项目选择Team—>Show in History
点击Show in History进入History界面
在此处我们可以看到我们提交的历史图及我们提交的文件
蓝色的线代表master分支黄色的线代表我们新建的dev分支,我们可以看到dev分支合并到了master分支上面
下方表示我们提交的文件
点击文件乐意看到与上一版本的差异处
2.4 .gitignore文件配置
通过上图我们可以看到有些文件是eclipse生成的,我们不需要版本控制。
所以我们可以通过配置.gitignore文件
我们可以通过此文件来忽略不必要的提交文件。
可借鉴:http://www.cnblogs.com/haiq/archive/2012/12/26/2833746.html
2.5 文件的历史版本对比与回滚
右键文件名称选择Team-->Show LocalHistory
显示文件的历史版本
选择一个版本右键选择CompareCurrent with Local
可以展示出本地文件与历史版本的差异
查看完版本差异后若想要回滚文件则右键想要回滚的版本
选择Get Contents,弹出对话框
点击yes即可进行版本回滚
2.6 拉取远程分支到本地
从上图我们可以看出来我们本地只有一个master分支远端有master和dev两个分支
此时我们右键项目选择Team-->Showin Repositiones View
进入此界面
右键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文件
8、git提供了多重协议用来连接git服务器,其中最常见的就是https和git,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