eclipse egit(版本回退)
在公司一年多了,用到的项目都是用svn代码托管,没有git 的用武之地,趁国庆假期稍微自学了一下,然后人比较懒,不愿用原生敲命令行的形式,就在eclipse上学学怎么用git,话说回来用了svn再来学git,既容易也难,难在于git的命令更多,上手也需要时间。我学习用的是廖雪峰的git教程,讲得很好,浅显易懂,他敲得是命令行,我翻译成了如何在eclipse中操作,也是一样学。
廖雪峰的git教程地址:
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
- git简介
这一段可以直接看廖雪峰教程的介绍,了解svn与git的本质区别是比较重要的。
2. 创建版本库和基本操作
什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
在一个java项目中,整个项目就是一个仓库,都归git管理,eclipse都集成git插件,我们只需在新建的项目中 右键项目Team-》share project-》选择git-》然后按操作完成,最后finish
成功的话就是下面这样:
有一个小箭头,代表git已经开始托管这个项目。
然后我们在这个项目下面编写一个java文件
最后我们提交这个文件到git仓库: 右键项目Team-》commit
在廖雪峰的教程中,一个文件提交 要先 add 然后 commit,EGIT中只要Commit就可以默认将未监控的文件添加到索引再提交更新,不需要分开操作(egit中的Add to index可以将文件加入git索引,进行版本监控)
还要注意备注信息一定要写,下面要提交的文件除了我们的demo.java,还有一些项目的配置文件,也一并提交。
然后点击eclipse 的window-》show view ,找到git repositories
左边找到git就是我们的项目,里面有分支,工作目录等信息,右键git项目-》show in -> history 可以看到右边我们的操作信息,包括刚刚我们提交的操作
重要概念:
右框中的id的含义:你看到的右边的id e414f3a 是commit id(版本号),和SVN不一样,Git的commit id不是1,2,3……递增的数字,而是一个SHA1计算出来的一个非常大的数字,用十六进制表示,而且你看到的commit id和我的肯定不一样,以你自己的为准。为什么commit id需要用这么一大串数字表示呢?因为Git是分布式的版本控制系统,后面我们还要研究多人在同一个版本库里工作,如果大家都用1,2,3……作为版本号,那肯定就冲突了。每提交一个新版本,实际上Git就会把它们自动串成一条时间线。
右框中的master的含义:每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支。
右框中的head的含义:git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是当前最新的提交e414f3a
现在我们再提交一次,这次我们在demo文件里添加一个方法get(),然后history框里会显示这次提交,head也及时指向了最新的提交。
现在,我们需要回退到 第一次导入git时的版本,也就是回退到版本号为e414f3a。
我们可以直接在history框中选择我们要回退的版本,然后右键reset-》hard,点确定,然后我们的第二次提交版本就消失了,demo.java文件也还原成了第一次导入的模样,head指针也回退了。
我们再想回去怎么办?
只要之前提交过的版本都被git记录了下来,在git repositories框中,右键项目-》show in-》git reflog ,git reflog 里面详细记录了你每次的操作
我们想回去“第二次提交”的版本,只需要查找第二次提交的版本id,就是95bc224,在git repositories框中右键reset,输入版本号,就可以了。
demo.java文件又还原成了第二次提交时的模样,廖雪峰教程里面有一章“工作区和暂存区”概念很重要,弄明白了暂存区,就弄明白了Git的很多操作到底干了什么。
转自:http://m.blog.csdn.net/article/details?id=52739343
eclipse egit(版本回退)的更多相关文章
- eclipse git(版本回退)
https://www.cnblogs.com/duex/p/6389999.html
- eclipse egit 解决冲突
eclipse egit冲突解决 在 pull 代码的时候 ,从远程仓库与本地仓库进行同步的时候 ,如果服务器版本与本地仓库版本不一致, 需要解决冲突 首先需要将改动的代码commit到本地仓库,冲 ...
- egit版本对应关系。
egit版本对应关系. http://wiki.eclipse.org/EGit/FAQ#What_versions_of_Eclipse_does_EGit_target.3F
- git 版本回退
由于操作失误,需要将代码进行版本回退,首先在本地仓库执行了“git reset --hard HEAD^”命令,这样只会回退本地仓库的代码,但是我的代码之前已经push到了远程库中,查看远程仓库,发现 ...
- git误删文件找回方法/git版本回退方法
使用git命令 git rm css/\*.css 我删掉了css文件夹下所有以.css结尾的文件,那么要怎样才能把文件找回来呢,下面说说方法,删掉其他的文件也是一样的方式找回. 第一步:使用git ...
- git版本回退, github版本回退
上周提交了更改,过了周末回来说要撤销上个story.于是,需要找到上周提交的版本,rollback回来. git版本管理命令,自从习惯使用管理工具之后就很少接触了,当突然寻找其他指令的时候就成浆糊了, ...
- 【Git学习笔记】初始化Git仓库和版本回退
学习地址 http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 什么是版本库呢?版本库又 ...
- l5如何通过路由走api版本回退查找设置
l5如何通过路由走api版本回退查找设置 具体需求 当前遇到的问题是使用laravel写接口,但是接口是有版本号的,我们把版本号放在url中,比如: http://yejianfeng.com/api ...
- git中的版本回退
git版本回退有两种情况,一种是从本地版本库中(head区)回退到某个版本,可以用命令 git reset --hard head^ 或git reset --hard head~x ,head指的是 ...
随机推荐
- NodeJs安装以及注意事项
1.测试NodeJs是否安装成功 node --version npm -v 配置node的可执行文件路径到环境变量path 2.安装相关环境 npm install express -g npm i ...
- hadoop2.4集群的搭建
hadoop中的三大组件: hdfs:分布式文件管理系统 (namenode管理所有的datanode) yarn:资源调度系统(ResourceManager管理所有的nodemanager) ma ...
- 安装nodejs
1.安装epel 是yum的一个软件源,里面包含了许多基本源里没有的软件. yum install epel-release (需要root用户) yum 是一个在Fedora和Red ...
- [转]asp+oracle分页
PageSize:每页显示的记录数.PageCount:根据用户设定好的PageSize和表中的总记录数,系统自动算出总页数.RecordCount:表中的总记录数.AbsolutePage:表示当前 ...
- Spring MVC 学习笔记9 —— 实现简单的用户管理(4)用户登录显示局部异常信息
Spring MVC 学习笔记9 -- 实现简单的用户管理(4.2)用户登录--显示局部异常信息 第二部分:显示局部异常信息,而不是500错误页 1. 写一个方法,把UserException传进来. ...
- 《GPU高性能编程CUDA实战》第六章 常量内存
▶ 本章介绍了常量内存的使用,并给光线追踪的一个例子.介绍了结构cudaEvent_t及其在计时方面的使用. ● 章节代码,大意是有SPHERES个球分布在原点附近,其球心坐标在每个坐标轴方向上分量绝 ...
- add_polygon_to_map
var poly = new esri.geometry.Polygon({ "rings": [ [[117.008726, 30.931672], [117.009635, 3 ...
- 转载:python 的包导入
python 包 多个关系密切的模块应该组织成一个包,以便于维护和使用.这项技术能有效避免名字空间冲突.创建一个名字为包名字的文件夹并在该文件夹下创建一个__init__.py 文件就定义了一个包.你 ...
- markdown的试用
因为markdown,我接触到latex,因为latex,我花了几个月去看相关的书籍 我看了以下相关的资料 1.<LaTeX入门> 刘海洋 2.英文 TeX - LaTeX Stack E ...
- zipfile模块
在python中操作zip文件, 基本上都是使用zipfile模块,他可以创建.解压文件,获取zip文件的元数据信息. 我们想要操作一个zip文件,第一步就是初始化ZipFile实例. 1.打开tes ...