前言

在此之前,建立一个约定。
commit会产生提交id,merge之后也会产生提交id。也就是说merge是commit的一种操作。
但是为了表达方便,我们将commit和merge统称为更新,commit只是单指当前分支的提交,而merge单指合并操作。

正文

首先明确下问题:

  • 回滚
    将当前的version重置到某次提或者合并,在此次提交或者合并之后的更新都会被丢弃。
    比如 git reset --hard
  • 取消commit
    将某次commit的更新取消,但是这次commit的前后更新都不受影响。
    比如 git revert commit_id
  • 取消merge
    将某次merge取消,但是其前后的更新都不受影响。
    比如 git revert commit_id~number
    number是这次merge的提交。
    eg:
    git log

    • git revert fe6368d8b7c4e73137865b2f7de944aac8f508d6~2
      那么这次fe6368d8b7c4e73137865b2f7de944aac8f508d6对应的2次更新 8134271和4c63926都会被取消
    • git git revert fe6368d8b7c4e73137865b2f7de944aac8f508d6 -m 1
      只会取消8134271这次更新

据我所知,回滚其实用的很少,因为如果某次更新有问题,那么需要取消某次更新而不应该粗暴的回滚到那次更新之前(会操成误伤,抹去了别人的更新)。
所以推荐还是使用gir revert。

当然–soft 和–hard --mixed的区别可以如下理解:

  • soft
    只操作了HEAD,暂存区和work都没有被影响
  • hard
    操作了HEAD、暂存区和work,都被影响了
  • mixed
    操作了HEAD、暂存区,work没有被影响

git 回滚、取消commit、取消merge等回退操作相关推荐

  1. git回滚已经commit的文件

    1.查看commit了的上一个版本的版本号 git log 查看日志 拿到上一个版本的版本号 2.然后回滚 git reset --soft 版本号 会将改动放在缓存区 git reset --mix ...

  2. 【Gitlab】GIT回滚master分支到指定tag版本 并提交远程仓库

    [Gitlab]GIT回滚master分支到指定tag版本 并提交远程仓库 1 查看分支 git branch 2 切换到master分支 git checkout master 3 查看标签 git ...

  3. 在idea中纯界面进行git回滚操作

    在idea中git回滚操作 红色:工作区 绿色:缓存区 白色:已提交(本地版本库或者远程版本库) 通常我们都是在缓存区中写代码 第一步:reset到回滚的版本 找到需要回滚的版本,将代码重置到需要回滚 ...

  4. Git回滚版本并push到远端master

    办法一. [Gitlab]GIT回滚master分支到指定tag版本 并提交远程仓库 1 查看分支 git branch 2 切换到master分支 git checkout master 3 查看标 ...

  5. git 代码回滚_能提交到远程的Git回滚

    很多情况下我们需要回滚代码,最容易想到的就是git reset.但是git reset有个弱点,它是一个彻底的回滚,不能再提交给远程了,因为在提交记录里回滚点之后的记录都不见了. 做一下试验,一个文件 ...

  6. git-代码撤销、回滚到任意版本(git回滚命令reset、revert的区别)

    文章目录 一.Git 代码撤销.回滚到任意版本(当误提代码到本地或master分支时) 二.git回滚命令reset.revert的区别 1. 背景知识 2. 方法一:git reset(回退) 3. ...

  7. git 回滚/撤回提交代码、误删、误提交恢复

    git回滚找回代码 上情况 情况1 git pull的时候发生冲突,修改失误,并commit了,怎么恢复? 查看所有的commit提交日志,并获取提交id git log commit 0992046 ...

  8. Git 回滚 checkout、reset、revert

    Git 回滚 checkout.reset.revert 首先看一下 Git 的工作流程 checkout 是检出的意思,作用是将某次 commit 的状态检出到工作区,它的过程是先将 HEAD 指向 ...

  9. Git 回滚命令笔记

    Git 回滚命令 一.未提交 未提交有以下两种情况: 1)已经在工作区修改了文件,但还未执行 git add 提交到暂存区. 2)已经执行了 git add 提交到暂存作,但还未执行 git comm ...

  10. 1.2 git回滚操作

    1.远程仓库中有的文件,但是本地要给删除掉,如何同步 git ls-files //查看暂存区是否有该文件,以readme.md为例 git rm -r --cached readme.md //删除 ...

最新文章

  1. 空标签作为占位符调整距离
  2. LIGA Stereo:基于双目3D检测的Lidar几何感知表示学习(ICCV2021)
  3. python处理数据的优势-选择python进行数据分析的理由和优势
  4. python读取txt文件并批量写入不同的excel
  5. 第四周作业(基础题)
  6. 不搞虚的!快速把你拉入Docker 的门里 | 原力计划
  7. 移动端实现内滚动的4种方案
  8. Python 基础学习Chapter6
  9. 蓝牙音乐之AVRCP
  10. 专访李运华:程序员如何在技术上提升自己
  11. 大数据营销咨询公司AIO获数百万美元天使轮融资
  12. 微型计算机的英文术语,计算机常见英语词汇解释
  13. oracle wallet使用与维护
  14. Java实现 LeetCode 345 反转字符串中的元音字母
  15. java autoconf_Centos7安装autoconf
  16. VS连接Linux服务器
  17. 解读开源中国oschina App(thanatosx版)引导贴
  18. Windows注册表中保存的信息及环境变量中SystemRoot在注册表中的位置
  19. linux 挂载 SD 卡
  20. vt版本不见了_BIOS问题 我的版本BIOS 找不到 开启 intel vt-x功能

热门文章

  1. 从面试官的角度谈谈后端面试
  2. 【SVAC1】SVAC1.0场解码相关分析
  3. 程序员撩妹,你得看我教你的小技巧
  4. 人脸活体检测论文:Multi-Modal Face Anti-Spoofing Based on Central Difference Networks
  5. 【绝对经典】骂人口误.......................
  6. 什么蓝牙耳机颜值高?盘点四款高颜值蓝牙耳机
  7. 亚马逊dynamo高可用性关键字仓库
  8. 解密微信小程序用户敏感数据获取用户信息
  9. M1芯片处理器mac能用的AI(llustrator CC 2021 直装版M1优化版)解决M1版MAC安装AI闪退问题 完美支持M1芯片处理器
  10. Python用python-docx抓取公众号文章写入word