有时候我们用git提交代码后发生了错误,代码冲突了啊等等,我们需要将代码回到以前的某个版本

git代码回退有两种办法

一、git reset(推荐):

它是将最新的commit删除,用以前的某个版本的代码替代最新的代码,这里我们测试下

这里有很多的commit,我现在想将代码退回到第三个commit的时候,如果是用git命令,在项目的根目录就是有.git隐藏文件的目录,右击打开黑窗口

git reset --hard d83053a1a3ad6e169300b70a1f38b8b3d13d8576(这里是commit的标识)

执行完我们就回到了这个版本的代码,我们的本地代码,head什么的都改过来了,不过远程仓库的代码没有改过来,这个时候我们需要用

git push -f origin dev        //强行推送我们的代码,用我们现在的代码完全覆盖远程仓库的代码,正常推送会有冲突,这里不会有什么冲突的

如果我们用tortoise git(乌龟git)界面化git,我们右击项目点开show log

找到我们的某次提交,右击选择reset dev to this...,选择hard

确定后本地就已经改过来了,右击项目push代码,勾选unknown changes(就是强制推送代码的意思)

远程仓库的也改过来了

这里就会发现我们以前的commit不见了,我们想要恢复到的第三个commit上来了,成了最新的commit

二、git revert

这种方法是在已有代码的基础上面,在做一次commit,不过这个commit是对某次commit的反向操作,如果我们做错了某次提交,我们可以再做一次反向的提交,就可以回到上一个版本的代码了

不过这个方式我不太喜欢,退回到上一个版本还好,如果想要退回到以前的某个版本很有可能就会冲突了,而且提交的时候也会比较麻烦,这里记录下:

现在我要把git的代码回退,revert操作用tortoise git(乌龟git)好像不太好用,点击revert经常上面都没有,这里就记录下用git命令怎么做:

在项目的根目录右击,打开黑窗口,输入:

git revert d83053a1a3ad6e169300b70a1f38b8b3d13d8576(最新的commit标识)

我们会发现来到了个黑窗口,我们需要在最下面输入提交的message,随便写些什么都可以

写一些东西后,按ESC,然后同时按shift+;  ,输入wq,回车就可以了(这完全就是linux命令)

这个时候我们本地的代码也已经改过来了,然后我们需要将代码提交到git远程仓库,我们先pull,再push(不用先commit了,这其实做的就是一次commit操作,不过做的是某个反向的commit功能),然后我们远程的代码也改过来了

看下自己的代码吧,写完收工

git代码回滚的更多相关文章

  1. git代码回滚:Reset、Checkout、Revert的选择

    代码回滚:Reset.Checkout.Revert的选择 Zhongyi Tong edited this page on Dec 8, 2015 · 5 revisions Pages 19 Ho ...

  2. 6.Git代码回滚

    1.代码修改并提交 我们已经成功地添加并提交了一个helloWorld.txt文件,现在,是时候继续工作了. 于是,我们继续修改helloWorld.txt文件,改成如下内容: $ vi helloW ...

  3. git代码回滚的两种选择

    回滚到指定commit,且保持该commit之前和之后的提交记录 使用git revert命令. git revert HEAD // 回滚到前一次 commit git revert HEAD^ / ...

  4. 转一篇Git代码回滚技巧

    转 https://github.com/geeeeeeeeek/git-recipes/wiki/5.2-代码回滚:Reset.Checkout.Revert的选择

  5. git 代码回滚与爬坑 -- reset and revert

    本文通过MetaWeblog自动发布,原文及更新链接:https://extendswind.top/posts/technical/git_code_roll_back_revert_and_res ...

  6. Git如何回滚代码?

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

  7. 通过GIT_COMMIT进行代码回滚

    首先需要安装插件:conditional-buildstep A buildstep wrapping any number of other buildsteps, controlling thei ...

  8. 代码回滚:Reset、Checkout、Revert的选择

    代码回滚:Reset.Checkout.Revert的选择 Git仓库有三个主要组成——工作目录,缓存区和提交历史. 从图中我们可以看出,缓存区或者叫索引,其实是指一整套即将被下一个提交的文件集合.也 ...

  9. 利用PyCharm操作Github:仓库新建、更新,代码回滚

      Github是目前世界上最流行的代码存储和分享平台,而PyCharm是Python圈中最流行的IDE,它很好地支持了Git操作.本文将会介绍如何利用PyCharm来连接Github,同时演示Git ...

随机推荐

  1. Java--向数据库添加txt文件中的批量数据

    大家可能会遇到这样的问题,在做一个项目时需要操作数据库,需要有大量的数据需要导入到数据库中,这部分数据存到了txt文档中(可以把Word文档中的数据弄到txt文档),总不能每一条数据都复制黏贴到数据库 ...

  2. git 分支的创建与提交

    我们在开发的过程中会遇到很多团队协作的问题,怎么来解决团队合作呢,就是靠分支来管理代码.一般来说一个功能就要创建一个分支,这样才能减少代码的冲突,给开发带来很大的方便. 首先需要克隆代码 git cl ...

  3. 函数, lambda表达式

    函数 函数:简单的理解,就是一次执行很多行代码 函数的返回值 函数的参数,和变量没区别 例: def hello(): print "hello world" hello() he ...

  4. systemtap原理及使用

    SystemTap的架构 SystemTap用于检查运行的内核的两种方法是 Kprobes和 返回探针.但是理解任何内核的最关键要素是内核的映射,它提供符号信息(比如函数.变量以及它们的地址).有了内 ...

  5. shopping_cart

    #!/usr/bin/env python # -*- coding: utf-8 -*- print('欢迎土豪光临随心所欲旗舰店') user_money = int(input('老板,请输入你 ...

  6. Docker - 容器互联

    容器互联 通过docker run命令的--link参数可以让容器之间通过连接(linking)系统进行交互. 参数格式:--link name:alias ,name是要链接的容器名称, alias ...

  7. MySQL使用pt-online-change-schema工具在线修改1.6亿级数据表结构

    摘  要:本文阐述了MySQL DDL 的问题现状.pt-online-schema-change的工作原理,并实际利用pt-online-schema-change工具在线修改生产环境下1.6亿级数 ...

  8. 使用Github Page鼓励自己每日编程

    动机 三天不练手生,编程的基础训练本身是很枯燥的,需要很多的认真与坚持.无论是Debug的经验,语法规则的记忆,还是各类基础的算法运用,都需要持之以恒的认真.Github的"打卡" ...

  9. ucenter 单点登录,终极版

      一 ,discuz ecshop  两边登陆都可以同步登陆到另一程序上,但退出则无法实现同步登陆.顺着 Ecshop 的退出流程,顺藤摸瓜找到了 lib_common.php 文件中的 uc_ca ...

  10. Windows8.1 + Nvidia cuda8.0 + Vs2015

    操作系统:Windows8.1 显卡:Nivida GTX965M 开发工具:Vs2015 1.查看本机配置,查看显卡类型是否支持NVIDIA GPU选中计算机-->右键属性-->设备管理 ...