git代码回滚
有时候我们用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代码回滚的更多相关文章
- git代码回滚:Reset、Checkout、Revert的选择
代码回滚:Reset.Checkout.Revert的选择 Zhongyi Tong edited this page on Dec 8, 2015 · 5 revisions Pages 19 Ho ...
- 6.Git代码回滚
1.代码修改并提交 我们已经成功地添加并提交了一个helloWorld.txt文件,现在,是时候继续工作了. 于是,我们继续修改helloWorld.txt文件,改成如下内容: $ vi helloW ...
- git代码回滚的两种选择
回滚到指定commit,且保持该commit之前和之后的提交记录 使用git revert命令. git revert HEAD // 回滚到前一次 commit git revert HEAD^ / ...
- 转一篇Git代码回滚技巧
转 https://github.com/geeeeeeeeek/git-recipes/wiki/5.2-代码回滚:Reset.Checkout.Revert的选择
- git 代码回滚与爬坑 -- reset and revert
本文通过MetaWeblog自动发布,原文及更新链接:https://extendswind.top/posts/technical/git_code_roll_back_revert_and_res ...
- Git如何回滚代码?
摘要: 多年以后,你面对一个需要回滚的Git仓库,准会想起这篇博客. 某一天,用户跟我反馈,他不能分配任务了.我去看了一下Fundebug捕获的报错信息: 可知,出错原因是前端发送的请求参数有问题.这 ...
- 通过GIT_COMMIT进行代码回滚
首先需要安装插件:conditional-buildstep A buildstep wrapping any number of other buildsteps, controlling thei ...
- 代码回滚:Reset、Checkout、Revert的选择
代码回滚:Reset.Checkout.Revert的选择 Git仓库有三个主要组成——工作目录,缓存区和提交历史. 从图中我们可以看出,缓存区或者叫索引,其实是指一整套即将被下一个提交的文件集合.也 ...
- 利用PyCharm操作Github:仓库新建、更新,代码回滚
Github是目前世界上最流行的代码存储和分享平台,而PyCharm是Python圈中最流行的IDE,它很好地支持了Git操作.本文将会介绍如何利用PyCharm来连接Github,同时演示Git ...
随机推荐
- vue实现全选效果
vue实现全选效果 接触vue快半年了,记得刚用vue做项目的时候遇到一个全选功能,当时到处百度也没有找到怎么实现,最后还是用了jquery进行dom操作实现的. 今天没事就顺手写了一个,感觉很简单, ...
- Rookey.Frame v1.0 视频教程发布了
经过昨天几个小时的折腾, Rookey.Frame v1.0开发视频教程终于发布了,由于是第一次做视频有很多地方做的不够好,后续我会慢慢改进,争取将视频教程做好. 本期发布视频: (一)Rookey. ...
- html基础认识,高手别看
HTML5是一种用于在万维网上构建和呈现内容的符号言语.它是HTML规范的第五和当时版别.它是由万维网联盟(W3C)在十月发布的2014 [ 2 ] [ 4 ]和最新的多媒体支持进步言语,一起坚持它简 ...
- 使用EzHttp框架 开发基于HTTP协议的CS轻应用
框架概述 EzHttp是临时起意构思和开发的一个框架,目的在于简化CS轻应用开发过程.开发语言是C#. 普通的基于HTTP的应用开发基本上是RESTful的,客户端调用封装需要人工写代码,就算利用三方 ...
- CSS3 & SVG 制作钟表
在线演示 源码下载
- git 设置不需要输入密码, 去除 fetch / pull 代码每次都需要输入密码的烦恼
https方式每次都要输入密码,按照如下设置即可输入一次就不用再手输入密码的困扰而且又享受https带来的极速 设置记住密码(默认15分钟): git config --global credenti ...
- 【WPF】学习笔记(二)——依旧是一个电子签名板
这篇博客呢,主要谈谈在实现电子签名功能中踩过的几个坑:1.System.BadImageFormatException异常:2.无法加载DLL“###.dll”,: 找不到指定的模块. (异常来自 H ...
- 利用GDB进行多线程调试
一.多线程调试 多线程调试重要就是下面几个命令: info thread 查看当前进程的线程. thread <ID> 切换调试的线程为指定ID的线程. break file.c:100 ...
- 简析ASP.NET WebApi的跨域签名
之前的文章写了关于WebApi的跨域问题,当中的方法只是解决了简单请求的跨域问题而非简单请求的跨域问题则没有解决. 要弄清楚 CORS规范将哪些类型的跨域资源请求划分为简单请求的范畴,需要额外了解几个 ...
- 通过Servlet实现汉字验证码
package com; import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.Gra ...