您的位置:首页 > 编程语言 > Java开发

eclipse git控件操作 回退到历史提交 重置 删除(撤销)历史的某次提交

2016-12-09 17:17 381 查看
工作区--》暂存区--》本地仓库--》远端git仓库
(个人理解,不对之处望指正)

Reset操作

假设我在工作区中 创建了一个新的文件  newFile.text,并提交到了本地仓库中

操作方式1:(分支最新提交记录)选择项目 鼠标右键--team--reset--Remote Tracking   选择远端git仓库 分支的最新版本   
--Reset type下有三个选项
Soft:工作区文件的修改不变,提交记录被重置(文件存在于暂存区中;当提交记录commit写错时,可以选择这个方式来重新填写commit记录);newFile.text文件的状态是 加号 +

Mixed:工作区文件的修改不变,提交记录被重置(文件存在于工作区,需要重新提交;当提交记录commit中有几个文件并不想上传,可以选择这个方式,来重新选择上传的文件);newFile.text文件的状态是 问号 ?

Hard:工作区文件的修改被删除,使用分支最新版本(远端git服务器里面的最新代码,覆盖本地的代码);newFile.text被删除了
--点击Reset执行
操作方式2:(当前分支的任意提交记录)项目右键--team--show in history --选择commit记录 鼠标右键--Reset
效果同方式1
Soft、Mixed 操作都会使得head记录改变(head代表当前工作空间所指向commit的记录)

Hard 如果文件只在工作区(标志为问号),则不会发生改变,反之则被覆写

Revert commit操作

选择项目--team--Show in History--选择版本右击--Revert commit--提交
撤销操作会自动生成一条提交记录

以下为个人理解:

Reset --Hard(谨慎使用):暂存区、本地仓库的修改,会被删除commit记录、文件;
已经提交到远端git仓库的,会提示你pull最新的代码,如果有提交修改记录到本地仓库,自动先pull代码再合并)
(比如我重置到某个版本,进行代码测试,看看之前的版本代码的效果)
Rever commit:操作的记录会保存,自动生成commit记录,撤销是针对操作commit记录生效(比如我刚刚提交的一份代码有问题,要删除掉刚提交的代码)

举个例子:假如有提交记录是 从1递增到5:1,2,3,4,5
操作第3条记录
reset --Hard 的效果是:1,2,3   (3后面的记录没了)
revert commit的效果是:1,2,4,5(3这一条记录没了)

清除本地git修改
项目右键--team--Advanced--clean...(清除分支的修改)

项目右键--team--stashes--stash Changes:存储本次修改(仅限于未提交)

项目右键--team--show in history 会看到完整的提交记录

项目右键--team--show in history -- modify  :可以修改注释

eclipse,git控件导入Maven项目:import--Git--Projects from Git--Existing Local repository(导入一个存在的本地库)--Next 选择项目--nex--三个选择:
Import existing Eclipse Projects(会自动导入成项目,一般选这个),
Import using the New Project Wizard(使用项目向导可重新配置项目),
Import as general project(类似于文件夹层次,可以手动选择转换成项目)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐