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 ...
随机推荐
- Springmvc的工作流程
1.向服务器发送http请求,请求被前端控制器DispatcherServlet捕获. 2.DispatcherServlet根据servlet.xml中的配置进行URL解析后,得到(URL),然后根 ...
- JAVA 继承中的this和super
学习java时看了不少尚学堂马士兵的视频,还是挺喜欢马士兵的讲课步骤的,二话不说,先做实例,看到的结果才是最实际的,理论神马的全是浮云.只有在实际操作过程中体会理论,在实际操作过程中升华理论才是最关键 ...
- Nginx 反向代理&负载均衡
1.反向代理 当我们请求一个网站时,nginx会决定由哪台服务器提供服务,就是反向代理. nginx只做请求的转发,后台有多个tomcat服务器提供服务,nginx的功能就是把请求转发给后面的服务器, ...
- [ABP实战开源项目]--YoYoCms目录
ABP是"ASP.NET Boilerplate Project (ASP.NET样板项目)"的简称. ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WE ...
- 用PHP删除ftp下载导致的文件空行
使用FTP上传下载文件,如果没有设置传输方式为二进制,可能会导致文件出现空行的情况,例如: 使用PHP对文件的空行进行删除,使用正则: <?php $file = './abc.inc.php' ...
- R语言结合概率统计的体系分析---数字特征
现在有一个人,如何对这个人怎么识别这个人?那么就对其存在的特征进行提取,比如,提取其身高,其相貌,其年龄,分析这些特征,从而确定了,这个人就是这个人,我们绝不会认错. 同理,对数据进行分析,也是提取出 ...
- 基于require+knockout的webapp结构设计
*********************************************************************************** 一.项目结构: Webapp - ...
- 学习笔记:javascript 表单对象(form)
Form 对象属性 属性 描述 acceptCharset 服务器可接受的字符集. action 设置或返回表单的 action 属性. enctype 设置或返回表单用来编码内容的 MIME 类型. ...
- HiveHbase集成实践
作者:Syn良子 出处:http://www.cnblogs.com/cssdongl/p/6857891.html 转载请注明出处 简单的说就是可以通过Hive SQL直接对hbase的表进行读写操 ...
- Unite'17 Shanghai再一次问候
Unite'17 Shanghai再一次问候 --暨Unity2017年度大会 2017年5月11日,主题为"再一次问候"的Unity年度盛会在上海国际会议中心举行,这是Unity ...