git revert

git revert 是一种创建一次新的commit 来回退某次或某几次commit的一种方式

命令

// 创建一个新的commit,这个commit会删除(下面)commit-id的内容,但会在log中保留这个commit-id
git revert commit-id // 批量回退 这个是前开后闭, 只revert了...和commit-id-end, commit-id-start没有撤销
git revert commit-id-start...commit-id-end // 加上^ 就是前闭后闭,都撤销了
git revert commit-id-start^...commit-id-end

ps: 没有git revert 文件的操作,IDEA的撤销文件修改的操作(revert)用的不是git revert

例子:

原始log

31f6a64 (HEAD -> master) 提交 3
98d937c 提交 2
af02354 提交 1

目录下的内容为:

➜  revert_test git:(master) ls
1.txt
2.txt
3.txt

现在想删除 98d937c 的提交

执行

git revert 98d937c

再看目录下的内容为:

➜  revert_test git:(master) ls
1.txt
3.txt

说明确实去掉了98d937c 的提交内容(即2.txt 不在了

再看日志:

d1ea1e9 (HEAD -> master) Revert "提交 2"
31f6a64 提交 3
98d937c 提交 2
af02354 提交 1

发现,其实是通过一次新的提交来删除98d937c 的提交内容的(这里可以看出之前的commit-id依然在)

再看批量回退

日志记录

a74b9bb (HEAD -> master) 提交 6
e3bbc59 提交 5
223171c 提交 4
d1ea1e9 Revert "提交 2"
31f6a64 提交 3
98d937c 提交 2
af02354 提交 1

现在回退 提交4 和提交5

执行

git revert 223171c^...e3bbc59

看日志

af51f68 (HEAD -> master) Revert "提交 4"
1a5d0c0 Revert "提交 5"
a74b9bb 提交 6
e3bbc59 提交 5
223171c 提交 4
d1ea1e9 Revert "提交 2"
31f6a64 提交 3
98d937c 提交 2
af02354 提交 1

产生了两次revert提交commit

git revert总结的更多相关文章

  1. git revert和reset区别

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

  2. git revert和git reset的区别

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

  3. 代码回滚:git reset、git checkout和git revert区别和联系

    git reset.git checkout和git revert是你的Git工具箱中最有用的一些命令.它们都用来撤销代码仓库中的某些更改,而前两个命令不仅可以作用于提交,还可以作用于特定文件. 因为 ...

  4. [译]git revert

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

  5. git revert 和 git reset的区别

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

  6. Git学习笔记 git revert

    我们难免会因为种种原因执行一些错误的commit / push,git提供了revert命令帮助程序员修复这样的错误. 举个例子,下图是git commit 的历史记录 git revert 命令会通 ...

  7. git的几种回滚 git revert 和 git reset的区别

    git的几种回滚 git revert 和 git reset的区别:强烈建议:对HEAD不熟的话最好不要用HEAD,直接用commitID吧,我遇到的问题:reset HEAD~1之后,可能是别人提 ...

  8. git revert 用法

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

  9. 关于git reset和git revert之前的区别

    很多时候,git新手容易误操作,比如,在levelIISZ-1.4.dev分支下,运行了git pull idc cpp-1.0的结果,这样做麻烦很大,经常导致maven项目格式不正确,这个时候,可以 ...

  10. git reset、git checkout和git revert的区别

    这三个git命令都是用来撤销代码仓库中的某些更改,而前两个命令不仅可以作用于commit层面,还可以作用于file层面Reset在commit层面,reset通过移除当前分支的一些节点来实现版本回滚; ...

随机推荐

  1. 如何写好测试用例以及go单元测试工具testify简单介绍

    背景 ​ 最近在工作和业余开源贡献中,和单元测试接触的比较频繁.但是在这两个场景之下写出来的单元测试貌似不太一样,即便是同一个代码场景,今天写出来的单元测试和昨天写的也不是很一样,我感受到了对于单元测 ...

  2. UiPath数据抓取Data Scraping的介绍和使用

    一.数据抓取(Data Scraping)的介绍 使用截据抓取使您可以将浏览器,应用程序或文档中的结构化数据提取到数据库,.csv文件甚至Excel电子表格中. 二.Data Scraping在UiP ...

  3. 无语怎么这么简单!——python实现中文字幕雨+源代码(源码可赠)

    大家好鸭,我是小熊猫 最近浏览了很多关于用Python和Pygame实现代码雨的案例,发现很多都是没有深入讲解代码的整个实现过程,从0到1教会你制作中文文字雨(其实啥字好像都可以). 然后在介绍的过程 ...

  4. 如何搭建android源代码repo仓库

    如何搭建android源代码repo仓库 目录 如何搭建android源代码repo仓库 1 repo是如何管理仓库的? 1.1 repo如何工作的? 1.2 搭建repo服务需要做哪些事情? 2 部 ...

  5. 没想到吧,Spring中还有一招集合注入的写法

    原创:微信公众号 码农参上,欢迎分享,转载请保留出处. 哈喽大家好啊,我是Hydra. Spring作为项目中不可缺少的底层框架,提供的最基础的功能就是bean的管理了.bean的注入相信大家都比较熟 ...

  6. 阿里云有奖体验:如何通过ECS挂载NAS文件系统

    实验简介 本实验提供CentOS系统ECS一台和NAS文件服务. NAS基于POSIX文件接口,天然适配原生操作系统,提供共享访问,同时保证数据一致性和锁互斥.它提供了简单的可扩展文件存储以供与ECS ...

  7. 强化学习-学习笔记9 | Multi-Step-TD-Target

    这篇笔记依然属于TD算法的范畴.Multi-Step-TD-Target 是对 TD算法的改进. 9. Multi-Step-TD-Target 9.1 Review Sarsa & Q-Le ...

  8. 002 Redis使用及API

    Redis的使用及相关API 1.作用: 提高查询效率 一定程度上可以减轻数据库服务器的冲击压力,从而保护了数据库 //1.是否包含key redisTemplate.hasKey(key) //2. ...

  9. MYSQL--安装2(命令行连接到数据库)

    使用命令行窗口连接 MYSQL 数据库[操作示意图]

  10. CSS(十四):盒子模型

    页面布局的本质 网页布局过程: 先准备好相关的网页元素,网页元素基本都是盒子. 利用CSS设置好盒子样式,然后放到相应的位置 往盒子里面装内容 网页布局的本质:就是利用CSS摆盒子 盒子模型 组成 所 ...