如下图所示:
文章插图
这里需要说明一下:
git revert
命令的作用通过反做创建一个新的版本 , 这个版本的内容与我们要回退到的目标版本一样,但是HEAD指针,是指向这个新生成的版本 , 而不是目标版本 。使用
git revert
命令来实现上述例子的话,我们可以这样做:先 revert commit-4
, 再 revert commit-3
(有多个提交需要回退的话需要由新提交到旧提及哦啊进行 revert) 。我们继续同样的操作步骤 , 把第三次提交也撤销掉 。
# 1.撤销第3次提交L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/revert_test (master)$ git revert fd819dc[master 30f7626] Revert "第6次提交,revert 撤销第3次提交" 1 file changed, 1 deletion(-)# 2.查看版本库历史提交记录L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/revert_test (master)$ git log --oneline30f7626 (HEAD -> master) Revert "第6次提交 , revert 撤销第3次提交"d0c8e48 Revert "第5次提交,revert 撤销第4次提交"c04b29c 第4次提交,新增内容:revert test v4fd819dc 第3次提交,新增内容:revert test v3c71ae3c 第2次提交,新增内容:revert test v2557f7c3 第1次提交,新增readme.txt文件# 3.查看readme.txt文件内容L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/revert_test (master)$ cat readme.txtrevert test v1revert test v2
通过上面练习 , 我们可以得出 , git reset
撤销和git revert
撤销的区别 , 如下图所示:文章插图
(2)revert命令说明
git revert <commit>
命令:- 这个命令会生成一个新的提交记录,新的提交记录就是把需要移除的提交撤销掉 , 所生成的新提交 。
- 如果工作区或暂存区还有修改未提交 , 那么会提示需要先提交或存储起来这些文件 。
- 如果在移除的过程中发生了冲突 , 可以在解决了冲突后,使用
git add
命令添加修改的冲突文件到暂存区中,在使用git revert --continue
来继续操作 。如果不想继续操作,当然也可以使用git revert --abort
命令来停止移除操作,恢复到执行git revert <commit>
命令之前的状态 。 - 如果
revert
移除的过程中出现冲突 , 需要把这些冲突解决才可以继续操作 。我们可以使用git revert --skip
命令来跳过一个commit
的冲突解决 。如果后续还有冲突,也同样如此进行跳过,直到全部冲突解决完成 。但是使用git revert --skip
命令跳过的commit
,将会在历史提交记录中被删除(reflog
命令还是可以看到的),所以git rebase --skip
这个命令慎用 。
git revert HEAD
:撤销前一次commit
。git revert HEAD^
:撤销前前一次commit
。
推荐阅读
- 黑色沙漠手游10月19日微信每日一题答案是什么
- 一加9r和红米k40哪个好_手机参数配置对比
- 不会游泳的人如何自学游泳(一般人如何学习游泳)
- 怎么一天学会游泳,游泳教程(游泳老师教女神游泳)
- Java一次返回中国所有省市区三级树形级联+前端vue展示【200ms内】
- SpringBoot+Vue3 AgileBoot - 手把手一步一步带你Run起全栈项目
- CentOS 7.9 安装 kafka_2.13
- 新剑侠情缘10月19日微信每日一题答案是什么
- 宝石研物语:伊恩之石迈向绚烂之时最后一关怎么打
- oppok9骂声一片_oppok9到底值不值得买