git revert命令用于回滚代码。

举个例子,创建一个gi_revert_test的工程,分别作三次改动:第一次创建demo_file文件,第二次在demo_file文件中添加一些内容,第三次在demo_file中再添加一些内容。通过git log可以看到改动历史。

$ mkdir git_revert_test
$ cd git_revert_test/
$ git init .
Initialized empty Git repository in D:/sandbox/code/git_revert_test/.git/
$ touch demo_file
$ git add demo_file
$ git commit -m "add demo_file"
[master (root-commit) b81fe58] add demo_file1 file changed, 0 insertions(+), 0 deletions(-)create mode 100644 demo_file
$ echo "line 1" >> demo_file
$ git add demo_file
$ git commit -m "add line 1"
[master 627a5fa] add line 11 file changed, 1 insertion(+)
$ echo "line 2" >> demo_file
$ git add demo_file
$ git commit -m "add line 2"
[master 58968a0] add line 21 file changed, 1 insertion(+)
$ cat demo_file
line 1
line 2
$ git log --oneline
58968a0 (HEAD -> master) add line 2
627a5fa add line 1
b81fe58 add demo_file

git revert HEAD可以撤销前一次 commit。注意git revert是提交一个新的版本,将需要revert的版本的内容再反向修改回去,版本会递增,不影响之前提交的内容。通过git log可以看到新增一条回滚的commit。

$ git revert HEAD
[master c314839] Revert "add line 2"1 file changed, 1 deletion(-)
$ git log --oneline
c314839 (HEAD -> master) Revert "add line 2"
58968a0 add line 2
627a5fa add line 1
b81fe58 add demo_file

git reset vs git revert

1. git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit。

2. git reset 是把HEAD向后移动了一下,而git revert是HEAD继续前进

3. git reset非常危险,不要在master使用。事实上我建议在任何branch都不要使用。

参考

Git Revert | Atlassian Git Tutorial

git revert回滚代码相关推荐

  1. Git如何回滚代码?

    摘要: 多年以后,你面对一个需要回滚的Git仓库,准会想起这篇博客. 某一天,用户跟我反馈,他不能分配任务了.我去看了一下Fundebug捕获的报错信息: 可知,出错原因是前端发送的请求参数有问题.这 ...

  2. Git如何回滚代码? 1

    摘要: 多年以后,你面对一个需要回滚的Git仓库,准会想起这篇博客. 某一天,用户跟我反馈,他不能分配任务了.我去看了一下Fundebug捕获的报错信息: 可知,出错原因是前端发送的请求参数有问题.这 ...

  3. git revert回滚merge提交时报错(commit xxx is a merge but no -m option )

    git revert 回滚merge提交 报错内容: $ git revert 788bab4 error: commit 788bab4021fe14db3a0865aa55fd1b798b74c2 ...

  4. 『实用教程』使用Visual Studio自带的Git管理回滚代码版本

    使用Visual Studio自带的Git管理回滚代码版本 需求: 恢复本地某一时刻的版本,并提交覆盖远程版本 操作: 拉取远程最新版本至本地 提交所有更新 操作\查看历史记录,显示所有已提交更新,然 ...

  5. 拜托,不要再问我Git如何回滚代码

    Hey git学习篇(5) 这个是Git学习的第5篇内容,今天我们来讲讲Git如何做代码回滚. 代码回滚 不知道大家在平常开发时中没有犯过这样一个错误,就是把IDE的配置或者项目运行的本地配置文件上传 ...

  6. git系列之revert回滚

    1. Git 使用revert回滚已提交的commit 在git使用中如果提交错误的代码至远程服务器,可以使用git revert 命令回滚单次commit并且不影响其他commit. 回滚最新一次的 ...

  7. git 代码回滚_git代码版本管理(1)——git版本回滚

    git代码版本管理(1)--git版本回滚 1.问题背景 在利用github.gitlab.Gitee等代码管理器中对代码的管理,我们有时会出现错误提交的情况,此时我们希望能撤销提交操作,让程序回到提 ...

  8. GIt版本回滚的两种方法reset、revert

    在学习关于git版本回滚操作之前我们应该需熟练使用git log查看Git提交日志,同时也应学会使用git reflog查看Git提交日志. 可参考博客:git log的使用_WEB前端李志杰的博客- ...

  9. sourceTree对git的新建项目、储藏代码、切换分支、回滚代码、提交代码

    sourceTree是一个简单的图形化git管理工具 一.新建一个项目 二.储藏代码 三.切换分支 在切换分支之前,可以对当前分支进行储藏,若是想切回原来的分支直接右键储藏的分支选择应用储藏区即可,工 ...

最新文章

  1. linux下多线程的调试
  2. 字符串去掉两端的引号_Python3.7知其然知其所以然-第六章 字符串
  3. 查看linux系统属性
  4. tftp服务器连接开发板下载内核提示:retry count exceeded; starting again
  5. layui templet格式化_layui数据表格日期如何格式化成2012-12-30这样的?
  6. centos php ssl,CentOS下在Nginx中添加SSL证书以支持HTTPS协议访问
  7. python自动补全_Windows 下python的tab自动补全
  8. jquery中attr和prop的区别分析
  9. 「管理数学基础」3.2 凸分析:凸函数
  10. c++数据结构中 顺序队列的队首队尾_数据结构与算法—队列图文详解
  11. winform list集合怎么 in过滤_你有真正把 Python Set 当作数学集合吗?
  12. 桌面云之深信服VDC管理
  13. sbt启动机制、配置优化及与Intellij IDEA的集成
  14. win10下LPT并口打印失败和POS打印机的钱箱不能打开,win10的坑
  15. 南阳oj题目20吝啬的国度 菜鸟的进阶之路
  16. 国内外一些软件开发大公司
  17. IDEA Spring facet的意思
  18. IOS中截屏的实现,很简易的方法
  19. c语言stm8变量存储类型,STM8使用----STVD(COSMIC)定义变量指定其类型和位定义
  20. devC++代码格式化对齐的快捷键

热门文章

  1. 线性代数/判断向量组是否线性相关/定义与例题
  2. MAC上Cisco卸载后无法重新安装的解决方法
  3. at 17:00 Shutdown -s -t 60
  4. 持续交付-Blue Ocean 应用
  5. 一文搞懂transient关键字
  6. ISP—清晰度(SFR)
  7. cojs 1532. [IOI2001]移动电话
  8. w3c易语言教程,初识易语言
  9. 清华大学软件学院软件系统与工程研究所招聘计算机视觉等方向博士后
  10. Nginx之12火眼金睛 - (状态监控 日志分析)