git reset 3种方式
git reset命令有3种方式:
1、git reset --mixed:
此为默认方式,等同于不带任何参数的git reset。
2、git reset --soft:
回退到某个版本,只回退了commit的信息,如果还要提交,直接commit即可(修改的内容变成未add的状态),索引(暂存区)和工作目录的内容是不变的,在三个命令中对现有版本库状态改动最小。
3、git reset --hard:
彻底回退到某个版本,本地的源码也会变为上一个版本的内容,所有修改的内容都会丢失, (修改的代码 不会变成未add的状态)。索引(暂存区)内容和工作目录内容都会变给定提交时的状态。
git reset产生影响 |
表现 |
||||
选项 |
HEAD |
索引(暂存区) |
工作目录 |
原有文件内容的变更 |
目录结构的变更(增加或者删除文件) |
--soft |
是 |
否 |
否 |
修改内容还在,变成未add的状态 |
新增文件:还存在,变成未add的状态(目录结构中文件变成绿色,可以再次执行git commit ); 删除文件:目录结构中还是没有,可以直接执行git commit |
--mixed |
是 |
是 |
否 |
修改内容还在,变成未add的状态 |
新增文件: 还存在,变成未add的状态(目录结构中文件变成红色,需要执行命令git add . 再执行git commit ) 删除文件:目录结构中还是没有,可以直接执行git commit |
--hard |
是 |
是 |
是 |
修改内容丢失,修改的代码 不会变成未add的状态 |
新增文件丢失、删除的文件相当于没删 |
如何理解HEAD、索引(暂存区)、工作目录:
Git是什么 : Git是目前世界上最先进的分布式版本控制系统, 工作区中有一个隐藏目录.git时,为Git的版本库。
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
工作区(Working Directory):电脑里能看到的目录
以项目为例说明:
使用情况:
1、提交远程仓库时,多次commit都push错了分支,本来该提交到dev, 结果提交到了master, 在想将代码提交到dev时,说同一个commit不能提交到不同的分支
解决方式:版本回退但得保留所有的修改内容,使用git reset --soft
git reset 3种方式相关推荐
- git 远程仓库版本的回退以及git reset 几种常用方式记录
由于 github push 了两个比较潦草的commit, 自己很不满意,又不想重新开vpn进行上传,所以找了一下相关的教程. 最后研究了一下,原理为先在本地还原到你想要的commit,然后强制pu ...
- git reset三种模式区别和使用场景(hard,soft,mixed)
简单的理解三种模式: hard reset之后,以仓库为准,仓库,暂存区和工作区保持一致,不一致的全部清除: soft reset之后,工作区内容不变,只更新仓库内容,差异保留在index暂存区: m ...
- git reset 的三种模式的使用场景
一.前提 参考:建议先阅读:Git Reset 三种模式 这篇文章只是我的的一个笔记 二.三种模式 git reset --soft git reset --mixed git reset --har ...
- Git的撤销操作 git reset HEAD -- <file>
在项目中我们也经常会使用到撤销操作 使用这一节我们就讲一讲Git的撤销操作 撤销操作主要有如下几种 git commit --amend 撤销上一次提交 并讲暂存区文件重新提交 g ...
- git reset --mixed, - soft和--hard有什么区别?
我希望拆分提交,不知道要使用哪个重置选项. 我在看页面你能解释一下"git reset"用简单的英语做什么吗? ,但我意识到我并不真正理解git索引或临时区域是什么,因此解释没有帮 ...
- git reset current branch to here
reset current branch to here是git命令中的一种回滚操作. 其使用场景如下, 1)提交了多次错误的提交,想回滚到之前的某次提交. 2)合并了错误的分支,想回滚到合并之前. ...
- git回退到指定版本的两种方式:reset、revert
目录 1.三棵树工作区 2.工作流程 3. git revert 4. git reset 在我们使用git管理代码过程中,有时会遇到代码错误提交的情况,需要回退到之前节点的某个版本. 两种回退方式: ...
- git代码回滚的几种方式
这还是第一次写关于git的文章,让我不由的想起了大学那会还没有接触到git时的如噩梦般的版本控制. 每次如果代码要有大的改动都要提前copy一份出来,最后以至于有多少次大的改动就有多少分文件,而且每一 ...
- git工具 将源码clone到本地指定目录的三种方式
git工具 将源码clone到本地指定目录的三种方式 CreationTime--2018年7月27日15点34分 Author:Marydon 1.情景展示 运行git-bash.exe,输入命令: ...
最新文章
- 新松机器人发行价_知识创造财富,“机器人第一股”背后的院士是怎样炼成的?...
- 本地安装Docker
- Maven+Eclipse+SparkStreaming+Kafka整合
- 移除类名没有触发transition_epoll边缘触发模式
- OSError: [WinError 193] %1 不是有效的 Win32 应用程序。
- 使用gcov和lcov测试代码覆盖率
- wamp5环境配置基础教程
- 山东移动携手华云数据打造DICT战略合作伙伴生态圈 推动区域数字经济高质量发展
- 查看 Redis 某种类型的所有 key
- pytorch中DataLoader的num_workers
- Jenkins服务器迁移
- 清华大学百年校庆给清华大学的一封信
- [深入浅出C语言]理解取整、取余和取模
- php网页设计课程设计dreamweaver8_Dreamweaver8+PHP动态网站开发从入门到精通(附光盘)...
- Linux下网络相关结构体 struct servent
- java调用授权接口oauth2_微信授权就是这个原理,Spring Cloud OAuth2 授权码模式
- 微信小程序入门--快递查询小程序的制作
- IFTTT的简单使用-转发安卓手机的短信到邮箱
- H3C防火墙F1060上网以及配置策略路由
- 30岁前!我从农民工自学成为了一个程序员