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种方式相关推荐

  1. git 远程仓库版本的回退以及git reset 几种常用方式记录

    由于 github push 了两个比较潦草的commit, 自己很不满意,又不想重新开vpn进行上传,所以找了一下相关的教程. 最后研究了一下,原理为先在本地还原到你想要的commit,然后强制pu ...

  2. git reset三种模式区别和使用场景(hard,soft,mixed)

    简单的理解三种模式: hard reset之后,以仓库为准,仓库,暂存区和工作区保持一致,不一致的全部清除: soft reset之后,工作区内容不变,只更新仓库内容,差异保留在index暂存区: m ...

  3. git reset 的三种模式的使用场景

    一.前提 参考:建议先阅读:Git Reset 三种模式 这篇文章只是我的的一个笔记 二.三种模式 git reset --soft git reset --mixed git reset --har ...

  4. Git的撤销操作 git reset HEAD -- <file>

    在项目中我们也经常会使用到撤销操作 使用这一节我们就讲一讲Git的撤销操作 撤销操作主要有如下几种 git commit   --amend        撤销上一次提交  并讲暂存区文件重新提交 g ...

  5. git reset --mixed, - soft和--hard有什么区别?

    我希望拆分提交,不知道要使用哪个重置选项. 我在看页面你能解释一下"git reset"用简单的英语做什么吗? ,但我意识到我并不真正理解git索引或临时区域是什么,因此解释没有帮 ...

  6. git reset current branch to here

    reset current branch to here是git命令中的一种回滚操作. 其使用场景如下, 1)提交了多次错误的提交,想回滚到之前的某次提交. 2)合并了错误的分支,想回滚到合并之前. ...

  7. git回退到指定版本的两种方式:reset、revert

    目录 1.三棵树工作区 2.工作流程 3. git revert 4. git reset 在我们使用git管理代码过程中,有时会遇到代码错误提交的情况,需要回退到之前节点的某个版本. 两种回退方式: ...

  8. git代码回滚的几种方式

    这还是第一次写关于git的文章,让我不由的想起了大学那会还没有接触到git时的如噩梦般的版本控制. 每次如果代码要有大的改动都要提前copy一份出来,最后以至于有多少次大的改动就有多少分文件,而且每一 ...

  9. git工具 将源码clone到本地指定目录的三种方式

    git工具 将源码clone到本地指定目录的三种方式 CreationTime--2018年7月27日15点34分 Author:Marydon 1.情景展示 运行git-bash.exe,输入命令: ...

最新文章

  1. 新松机器人发行价_知识创造财富,“机器人第一股”背后的院士是怎样炼成的?...
  2. 本地安装Docker
  3. Maven+Eclipse+SparkStreaming+Kafka整合
  4. 移除类名没有触发transition_epoll边缘触发模式
  5. OSError: [WinError 193] %1 不是有效的 Win32 应用程序。
  6. 使用gcov和lcov测试代码覆盖率
  7. wamp5环境配置基础教程
  8. 山东移动携手华云数据打造DICT战略合作伙伴生态圈 推动区域数字经济高质量发展
  9. 查看 Redis 某种类型的所有 key
  10. pytorch中DataLoader的num_workers
  11. Jenkins服务器迁移
  12. 清华大学百年校庆给清华大学的一封信
  13. [深入浅出C语言]理解取整、取余和取模
  14. php网页设计课程设计dreamweaver8_Dreamweaver8+PHP动态网站开发从入门到精通(附光盘)...
  15. Linux下网络相关结构体 struct servent
  16. java调用授权接口oauth2_微信授权就是这个原理,Spring Cloud OAuth2 授权码模式
  17. 微信小程序入门--快递查询小程序的制作
  18. IFTTT的简单使用-转发安卓手机的短信到邮箱
  19. H3C防火墙F1060上网以及配置策略路由
  20. 30岁前!我从农民工自学成为了一个程序员

热门文章

  1. Android实现一键开启自由窗口、分屏、画中画模式——画中画模式
  2. 数位DP(期末机测题)
  3. python爬虫58同城租房
  4. 小程序后台开发sdk
  5. mysql——时间显示格式 dateformat函数
  6. python 文件批量改名
  7. Gartner发布2021年隐私技术成熟度曲线,数字伦理登上顶点
  8. 青春散场,初心不忘【致毕业季理想主义的你】
  9. (E4)ENVI-met运行结果处理
  10. jersey tomcat MySQL_基于jersey和Apache Tomcat构建Restful Web服务(一)