1.工作区: git add
2.暂存区: git commit
3.本地仓库: git push(此阶段: 提交记录 可以被修改)
4.远端git仓库: (此阶段: 提交记录 无法被删除, 可以利用git rebase来合并记录)
(个人理解,不对之处望指正)
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(类似于文件夹层次,可以手动选择转换成项目)