本文假设读者知道git的基本原理。

git revert命令其实非常好理解,就是revert的含义,该命令会重新进行一次新的提交,只是提交的内容是回退某一次提交。

下面举例来说明。
有一个仓库,仓库的提交记录和文件分别如下图所示,该仓库有三次提交,每次分别向仓库添加了1.txt,2.txt和3.txt,三个文件。

通过git log可以查看以前的所有提交内容,并且提交时的版本号,分别如下三图所示。


下面进行revert操作,比如现在想revert的版本号为ae829d5e23e9fb5a48f7a0edbf8667c5be4082a3,对应的是add 3.txt那次提交,执行git revert ae829d5e23e9fb5a48f7a0edbf8667c5be4082a3后,可以看到提交记录结果和仓库文件分别如下图所示,该命令重新提交了一次,反做了ae829d5e23e9fb5a48f7a0edbf8667c5be4082a3的提交,这时候进入仓库可以看到只有1.txt,2.txt两个文件。因为第三次提交是添加3.txt文件,所有revert该操作就是删除该文件的添加。

git revert操作不仅仅是能revert最近的一次提交,因为执行git revert命令后面还要加仓库的log id,所以,它能回退相应的提交并产生一个新的提交。还是举例说明,如下图所示,仓库的初始状态和上面一样,有三个提交。


下面执行git revert f69040dde29e3d384f7414b1b3ace8dee59f44cb,也就是将add 2.txt那次提交回退,结果如下图所示,仓库产生了一次新的提交,新的提交操作就是与第二次提交操作相反。因为第二次提交是添加2.txt文件,新的提交就是删除该文件,进入仓库可以看到1.txt和3.txt都还在。


那么git revert一般在哪使用呢,比如你改代码改错了,并没有发现,叫代码提交到了github,结果队友或者同事发现了,需要将你的某次提交回退,就可以使用,使用后作为一次新的提交,可以很方便的push到github,并不会有冲突的问题。

git revert的使用相关推荐

  1. git revert和git reset的区别

    git revert 是撤销某次操作,此次操作之前的commit都会被保留 git reset 是撤销某次提交,但是此次之后的修改都会被退回到暂存区 具体一个例子,假设有三个commit, git s ...

  2. 解决Git Revert操作后再次Merge代码被冲掉的问题

    解决Git Revert操作后再次Merge代码被冲掉的问题 参考文章: (1)解决Git Revert操作后再次Merge代码被冲掉的问题 (2)https://www.cnblogs.com/ja ...

  3. git reset和git revert

    前面一篇文章讲了,git reset --hard HEAD是快速撤销当前修改,今天再来学习一下git revert,然后对比git reset. git reset是回退到以前的某个commit时, ...

  4. git reset --hard、git reset --sort及git revert区别

    一. 在git操作中,有时候,进行了错误的提交,但是还没有push到远程分支,想要撤销本次提交,可以使用git reset –-soft/hard命令. 1.二者区别: git reset –-sof ...

  5. git revert 用法

    git revert 撤销 某次操作,此次操作之前和之后的commit和history都会保留,并且把这次撤销 作为一次最新的提交     * git revert HEAD              ...

  6. git revert改写提交

    教程3 改写提交! 2. revert 为了节省时间,这个教程使用现有的历史记录作为本地数据库. 从这里下载 我们将用revert命令来取消「添加pull的讲解」提交. 首先进入stepup-tuto ...

  7. Git复习(十三)之git revert用法及与git reset区别

    git revert用法以及与git reset的区别 git revert用法 git revert 撤销 某次操作,此次操作之前和之后的commit和history都会保留,并且把这次撤销 作为一 ...

  8. git revert 后再次merge_git如何回滚错误合并的分支

    导读: 分类:技术干货 题目:git如何回滚错误合并的分支 合并到线上分支出现问题的修复方式. 场景 线上分支:master 你开发的分支:dev1 同时开发的分支:dev2 dev1分支开发的代码已 ...

  9. [译]git revert

    git revert git revert用来撤销一个已经提交了的快照. 但不是从项目历史中移除这个commit, 而是生成一个新的commit, 老的commit还是保留在历史项目里面的. 这样做的 ...

  10. git revert和reset区别

    1.在github上建立测试项目并克隆到本地 2.本地中新建两个文本文件 3.将a.txt commit并push到远程仓库 执行 git add a.txt, git commit -m " ...

最新文章

  1. Caffe源码中caffe.proto文件分析
  2. spark- PySparkSQL之PySpark解析Json集合数据
  3. Dom Tree Node, Render Tree Node 结构
  4. 史上最全Redis面试题及答案。
  5. 【链接】Solr的Filed中indexed与stored属性
  6. 5-2 Windows消息队列 (25分)
  7. oracle+rman+备份命令,Oracle Rman 备份命令超详解释
  8. hbase 监控指标项
  9. sql 统计节点和子节点下面的数量_一次900万+数据量的 SQL 查询优化分析「上百倍性能优化」...
  10. 使用servlet原生API作为参数
  11. 身份证号前缀与区域对照表
  12. kindle 3 webbrowser破解,
  13. Exploring Plain Vision Transformer Backbones for Object Detection.
  14. 计算机硬件故障视频,电脑提示“没有视频硬件”怎么办
  15. java高并发解决方案
  16. win10系统服务器怎样设置密码,win10系统的电脑如何给普通文件夹设置密码
  17. 一文带你认清云服务器和轻量应用服务器的区别
  18. laravel 路由_简单的Laravel路由
  19. 如何提高程序员的工作效率 这几招就够了
  20. Linux下同一个Tomcat部署多个项目不同端口访问

热门文章

  1. 转录组分析流程:比对(有参)及统计Counts矩阵
  2. redis集群 mysql_mysql_redis
  3. java字符对比_Java 字符串比较
  4. 中国移动研究院黄宇红:存算一体助力算力网络创新发展
  5. Detours学习之十四:Detour 4.0 的编译
  6. 基于vue+echarts 数据可视化大屏展示[附源码]
  7. 火锅店的管道问题怎么解决?
  8. python怎么将两列数据比大小_python – 使用大pandas比较两列
  9. 数值分析C++实现用四阶龙格-库塔(Runge-Kutta)方法求解常微分方程初值问题
  10. 微软承认最新Win10更新会致电脑蓝屏死机