说说Git reset 与 revert 的故事

俗话说一入Git深似海,单独说Git一本书恐怕都不够,今天只是浅尝止渴而已。

简单说说resetrevert2个主要命令。

要学习Git,首先要明白Git几个基本概念

  • Workspace:工作区
  • Index / Stage:暂存区
  • Repository:仓库区(或本地仓库)

搞懂了这三个区域,才能更好理解这些Git命令是在干什么。

一、reset

reset命令的作用?

reset命令把当前分支指向另外一个位置(提交的ID版本号),并且有选择性的变动暂存区工作区的内容。

原理是基于本地仓库的文件去覆盖暂存区或工作区的内容

reset主要参数的区别

当没有指定ID的时候,默认使用HEAD,如果指定ID,那么就是基于指向ID去变动暂存区或工作区的内容

// 没有指定ID, 暂存区的内容会被当前ID版本号的内容覆盖,工作区不变
git reset

// 指定ID,暂存区的内容会被指定ID版本号的内容覆盖,工作区不变
git reset <ID>
  • --mixed(默认)

    默认的时候,只有暂存区变化

  • --hard参数

    如果使用--hard参数,那么工作区也会变化

  • --soft

    如果使用--soft参数,那么暂存区和工作区都不会变化

三次的提交记录
当前文件的内容
使用`--hard`参数,那么工作区也会变化
如果使用`--soft`参数,那么暂存区和工作区都不会变化

二、revert

revert命令撤销指定的commit并且新建一个commit,新建comment的内容由指定commit前一个提交内容保持一致

git revert <commit>

revert.txt 三次提交记录
revert前revert.txt的内容
revert后revert.txt的内容

参考链接

以上部分图片来源于图解Git

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • git常用命令 GIT常用命令备忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章阅读 12,766评论 1 26
  • 姓名:彭起洋 公司:思沃技术253期感谢2组~272期志工 【知-学习】 诵《六项精进》大纲30遍,共767遍;《...
    433d9d018b71阅读 1,527评论 0 0
  • 出发 决定再去成都看看。 看似鲁莽的决定,其实是一场酝酿已久的旅行。 自4月一行后仿佛在成都落下了些什么,只是这次...
    Trouble_02b7阅读 3,486评论 0 6
  • 哲理--156天 看到:1+1=1;1+2=1;3+4=1;5+7=1;6+18=1;大脑第一反应,不解;不可能...
    Alina_qi阅读 1,027评论 0 1
  • 婚礼人在签单后常常遇到这样的问题,昨天的尾款还没收,因为客户对品牌的不信任和怀疑,会压些尾款给公司,想避免婚礼现场...
    美美卓越婚礼学院阅读 812评论 0 0