我的网站开发技术经验总结 我的网站开发技术经验总结
首页

fangdown

我的网站开发技术经验总结
首页
  • 大前端

    • nodejs

    • git

      • 说说对git的理解
      • 说说git中fecth和pull的区别
      • 说说git中HEAD,工作树,索引之间的区别
      • 说说对git-rebase和git-merge的理解
      • 说说git的常用命令
      • 说说git中fork,clone,branch的区别
      • 说说对git中stash的理解
      • 说说git-reset和git-revert的理解
        • 是什么
          • 特性
        • 怎么用
        • git reset
        • git revert
        • 区别
    • CI

    • 小程序

    • docker

    • Typescript

    • webpack

    • 安全

  • 基础

  • 框架

  • 情商

  • 算法

  • 网络

  • 千锤百炼
  • 大前端
  • git
fangdown
2021-09-08
目录

说说git-reset和git-revert的理解

# 是什么

  • git reset
  • git revert

# 特性

都是回退版本行为

# 怎么用

# git reset

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

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

  • --mixed(默认):默认的时候,只有暂存区变化
  • --hard参数:如果使用 --hard 参数,那么工作区也会变化
  • --soft:如果使用 --soft 参数,那么暂存区和工作区都不会变化

# git revert

撤销某个commit
git revert <commit_id>

如果撤销前一个版本
git revert HEAD

撤销前前一次
git revert HEAD^


# 区别

  • git reset 把HEAD向后移一位,git revert向前移一位,提交内容刚好和前一个内容相反

  • git reset 删除commit, git revert 增加一个commit

  • git revert是用一次逆向的commit“中和”之前的提交,因此日后合并老的branch时,之前提交合并的代码仍然存在,导致不能够重新合并

  • 但是git reset是之间把某些commit在某个branch上删除,因而和老的branch再次merge时,这些被回滚的commit应该还会被引入

  • 不想要代码用git reset

  • 以后还要用的话用git revert

#git
上次更新: 2021/12/19, 18:05:42
说说对git中stash的理解
使用gitlab-ci实现前端自动化部署

← 说说对git中stash的理解 使用gitlab-ci实现前端自动化部署→

最近更新
01
多分支修复撞车的问题
05-01
02
如何成为架构师
01-23
03
服务器部署全过程
11-23
更多文章>
Theme by Vdoing | Copyright © 2019-2026 fangdown | 粤ICP备19079809号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式