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指的是 ...
随机推荐
- 判断B是不是A的子结构
题目描述 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) 解答: class Solution: def HasSubtree(self, pRo ...
- uva-270-排序
题意:很多个点,问,最多有多少个点在同一条直线上 #include <algorithm> #include <iostream> #include <string> ...
- Loadrunner:win10下Vuser 运行脚本通过,Controller执行用户并发报错
现象:win7安装LR可以正常使用,将win7升级到win10之后,运行场景之后报错:Error (-81024): LR_VUG: The 'QTWeb' type is not supported ...
- hive设置参数的方法
1.修改环境变量 ${HIVE_HOME}/conf/hive-site.xml 2.命令行参数 -e : 执行短命令 -f : 执行文件(适合脚本封装) -S : 安静模式,不显示MR的运行过程 ...
- Flex4学习笔记2--代码保存在单独的文件中
1 <!--调用外部as文件--> <fx:Script> <![CDATA[ import mx.controls.Alert; import a.Test3; ]]& ...
- docker pull centos慢问题的解决方案
1.现象 如果直接docker pull centos 两个小时才down下来8M,很慢 2.解决 [root@localhost network-scripts]# cd /etc/docker [ ...
- day13-文件操作
1.打开与关闭 1.1.open() close()我们使用 open() 函数打开文件.这个函数将返回一个文件对象,我们对文件的读写都将使用这个对象.open() 函数需要三个参数,第一个参数是文件 ...
- 区分slice,splice和split方法
1.slice(数组) 用法:array.slice(start,end) 解释:该方法是对数组进行部分截取,并返回一个数组副本:参数start是截取的开始数组索引,end参数等于你要取的最后一个字符 ...
- 17_react脚手架应用分析
|-- index.html // 启动页(主页) |-- build //构建目录,遵循发布系统规范 | |-- index.html //静态页面 | |-- static //资源文件发布到cd ...
- UNITY 多个子MESH与贴图的对应关系
多个贴图时,与子MESH一一对应,如果多了 ...还待研究如何对应