问题描述

在开发的过程中,想要修改一个参数的命名。然后修改各种地方,并且push上码云的远程仓库。然后突然发现还要改很多地方,突然后悔不想改动了。那该怎么办呢?

处理步骤

  • 回退本地的git版本
  • 将本地的代码强制推送至远程仓库中

回退本地git版本

  • 首先查看git版本信息,使用git log
$ git log
commit 6fecbc4fc9d7e23f5c66a504a413cc1ed4ed7f0c (HEAD -> master, origin/master,origin/django-template, origin/HEAD, django-template)
Author: kubernete <357018097@qq.com>
Date: Thu Aug 15 22:24:16 2019 +0800 修改table行数的参数名为table-lines commit 0e149c39eb4401647a9468eaf2b68b45832dbcb2
Author: kubernete <357018097@qq.com>
Date: Thu Aug 15 22:05:07 2019 +0800 取消tab菜单的360度翻转动画效果 commit 7c4b1492616ae788e9f58461c72fc12f6c9b1e2d
Author: lijw <357018097@qq.com>
Date: Thu Aug 15 19:44:24 2019 +0800 编写设备机组列表中查询隐藏域填充显示table行数

看了上面的git提交日志,我不想要修改table行数的参数名为table-lines这次的代码提交,想直接回退到取消tab菜单的360度翻转动画效果的版本。 那么可以直接执行回退到上一版本。

  • 执行回退到上一版本,使用git reset --hard HEAD^
# 执行回退至上一次提交的版本
$ git reset --hard HEAD^
HEAD is now at 0e149c3 取消tab菜单的360度翻转动画效果 # 查看log确认一下
$ git log
commit 0e149c39eb4401647a9468eaf2b68b45832dbcb2 (HEAD -> master)
Author: kubernete <357018097@qq.com>
Date: Thu Aug 15 22:05:07 2019 +0800 取消tab菜单的360度翻转动画效果 commit 7c4b1492616ae788e9f58461c72fc12f6c9b1e2d
Author: lijw <357018097@qq.com>
Date: Thu Aug 15 19:44:24 2019 +0800 编写设备机组列表中查询隐藏域填充显示table行数

强制将本地代码推送至远程仓库

但是到了这里,其实只是本地回退了版本而已,远程仓库的并没有回退。如果想要将本地的代码直接push到远程仓库则会报错如下:

$ git push
To gitee.com:kubernete/Performance-Test-Management-demo.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'git@gitee.com:kubernete/Performance-Test-Management-demo.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

这里会提示需要更新远程仓库,如果更新执行git pull的话,又会将刚才回退的版本下载回来。

此时需要强制将本地代码推送至远程仓库之中,使用git push -f origin master

执行如下:

$ git push -f origin master
Total 0 (delta 0), reused 0 (delta 0)
remote: Powered By Gitee.com
To gitee.com:kubernete/Performance-Test-Management-demo.git
+ 6fecbc4...0e149c3 master -> master (forced update)
这样就GITHUB上的版本就是历史版本了,直接CLONE就可以下载下来 GIT回滚之后再滚回去:
使用git reflog查看之前操作的commit信息,然后使用 git reset --hard 7d2bc17 回到7d2bc17操作时对应的版本; 文章转载自:https://cloud.tencent.com/developer/article/1490112,https://blog.csdn.net/shruber/article/details/78269046

git回退到历史版本的更多相关文章

  1. 在 Git 中 Checkout 历史版本

    昨天写代码的时候,误删了一个文件.今天发现的时候,commit 已经 push 到版本库了.本想用 git reset 回退版本,找回文件后重新提交.但是想起 Git 是一个版本控制系统哎,直接从版本 ...

  2. 『现学现忘』Git基础 — 24、Git中查看历史版本记录

    目录 1.查看详细的历史版本记录 2.简化显示历史版本记录 3.历史版本记录常用操作 (1)指定查看最近几次提交的内容 (2)以简单图形的方式查看分支版本历史 (3)翻页与退出 4.查看分支相关的版本 ...

  3. idea中git回退本地仓库版本

    场景:代码commit到本地仓库,还没有push到远程仓库,这时要回退代码. 介绍下Reset Head中三种Reset Type类型: 1.Mixed(默认):它回退到某个版本,本地会保留源码,回退 ...

  4. idea中git回退远程仓库版本

    工作中遇到,代码已提交并已提交到远程仓库,现需要回退到之前版本,记录如下: 记录当前版本的版本号和需要回退到版本的版本号. current version:85e7f32dfe421c5892a4e2 ...

  5. GIT 获取指定历史版本代码

    cd 到该项目的一个本地仓库下 log 查看提交记录,找到想要的提交记录,粘贴对应的希哈值 执行 git checkout 希哈值 这本地的这个仓库的代码就会变成你想要的那个版本的代码

  6. git 回退到服务器版本操作

    git fetch git reset orgin master --hard git pull

  7. HDU 4348.To the moon SPOJ - TTM To the moon -可持久化线段树(带修改在线区间更新(增减)、区间求和、查询历史版本、回退到历史版本、延时标记不下放(空间优化))

    To the moon Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total ...

  8. Git 强制回退到某个历史版本再推送到远程

    1. 使用 git log 命令历史版本记录回退版本 git reset --hard f6a7c803a6931a9eca011d4e097389e0845cbe49 2. 推送到远程 git pu ...

  9. git操作记录(如何回退到某个历史版本,如何提交部分文件等方法)

    当前项目使用git管理代码,在使用的过程中会遇到一些问题,这里记录下 1.合并代码后 在合并组员的代码后会出现下面的界面,开始的时候都会关闭,重新打开,乐此不疲到忍无可忍 解决方法: 出现这种界面是要 ...

随机推荐

  1. 多个celery如何使用同一个redis做为broker?

    曾经有个哥们提了一个这方面的requests,但是最终没有合入的celery中去,所以目前celery没有这个功能,祥见: https://github.com/celery/kombu/pull/9 ...

  2. JavaScript基础------JavaScript语法

    js的注释与分号 // 单行注释 /**/多行注释 ctrl +shift +/ 语句结束使用分号,如果省略,则由解析器确定语句的结尾js语法 1.变量.函数名.操作符都区分大小写 2.标识符 (1) ...

  3. python、java、ruby、node等如何提取office文档中的内容?

    我相信大家都有过这样的需求,把doc.ppt.excel.pdf.txt中的文本内容提取出来.提取出来的文本内容可用于文档内容的全文索引,文档的基本内容摘要等.在度娘上搜索“如何提取文档内容”,确实有 ...

  4. 【ARM-Linux开发】"libxml/parser.h: 没有那个文件或目录"解决方案

    这是因为在ubuntu上没有安装libxml2-dev,这个包应该是开发用的,而已安装的libxml2应该只是像jre一样的部件. 解决方案:sudo apt-get install libxml2- ...

  5. mongodb 连接后无法使用 发现已经有进程在运行

    mongod 命令执行发现已经有进程在运行mongod数据库--errno:48 Address already in use for socket: 0.0.0.0:27017 错误信息: list ...

  6. fastclick.js

    <script src="//cdn.bootcss.com/fastclick/1.0.6/fastclick.js"></script> //<s ...

  7. mysql 触发器检测表数据添加,进而调用存储过程检测数据,进而调用存储过程添加数据

    触发器: beginDECLARE user_mes INT(64);SELECT user_id into user_mes FROM order_orderlist where id = new. ...

  8. Servlet的request和response

    SERVLET API中forward() 与redirect()的区别?  答:前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址:后者则是完全的跳转,浏览器将会得到跳转的地址 ...

  9. class CAdoInterface

    AdoInterface.h #pragma once //#pragma warning (push) //以防会产生警告 C4018,但这个警告是没关系的,所以使用下一句代码屏蔽它 //#prag ...

  10. ~ android与ios的区别

    Oracle与Mysql的区别 项目类别 android ios 应用上 可以使用常用的android模拟器,来模拟各种android设备 只能直接使用iphone或ipad进行测试 开发语言 基于L ...