前言:
    在工作中,有时候会遇到发布的最新代码有问题,或者是排查问题是否是API或者前端问题,需要回退到之前的代码版本。
    本文主要记录两种方式,方便大家操作:①安装了小乌龟TortoiseGit工具进行操作,方便简洁;②使用git工作,使用命令行操作。
一、使用小乌龟TortoiseGit工具
    ①Git -》Show log

    ②reset

    ③选择hard

二、使用git命令行
    Git–如何将当前Git最新版本回退到指定版本号,并为指定版本创建一个新分支同步到远程仓库。
    我们在使用Git分布式管理工具的时候,经常会涉及到如何将本地最新代码切换到之前版本历史里指定版本(这里可能是代码出现bug,需求变更,版本分支,产品线分支等),这是我在实际开发中遇到过的问题,所以在此记录一下整个操作的过程,方便下次能直接使用,而不是百度里翻来翻去,还有就是百度到的东西不一定对的,一定要结合自己的问题进行取舍。
    1.先重新clone远程最新代码到另一个文件目录下(避免文件项目名冲突)。

93287@DESKTOP-0413I27 MINGW64 /d/workspaceMaster-DongNaoVip2018-04-09
$ git clone https://gitee.com/qrmc/his_pay.git
Cloning into 'his_pay'...
remote: Counting objects: 4154, done.
remote: Compressing objects: 100% (3254/3254), done.
remote: Total 4154 (delta 2066), reused 150 (delta 28)
Receiving objects: 100% (4154/4154), 4.12 MiB | 1.12 MiB/s, done.
Resolving deltas: 100% (2066/2066), done.

2.将新项目当前版本回退到历史版本节点上(这里可以根据自己提交代码时的描述进行选择回退,所以在开发中尽量把提交代码时的描述写清楚,方便以后版本的回退),这里回退的版本编号:
    e29440fbf364ca29656e42769d342c34b279bbc9,在回退时只需要填写前6位(e29440)就能回退版本。

93287@DESKTOP-0413I27 MINGW64 /d/workspaceMaster-DongNaoVip2018-04-09/his_pay (master)
$ git checkout e29440
Note: checking out 'e29440'.You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:git checkout -b <new-branch-name>HEAD is now at e29440f... 分界线=======分布式事务处理

3.创建一个新的分支(e29440)来保留切换后的版本分支

93287@DESKTOP-0413I27 MINGW64 /d/workspaceMaster-DongNaoVip2018-04-09/his_pay ((e29440f...))
$ git checkout -b e29440
Switched to a new branch 'e29440'

4.查看本地分支情况,当前是:e29440 。

93287@DESKTOP-0413I27 MINGW64 /d/workspaceMaster-DongNaoVip2018-04-09/his_pay (e29440)
$ git branch
* e29440master

5.查看远程分支情况,当前是:master 。

93287@DESKTOP-0413I27 MINGW64 /d/workspaceMaster-DongNaoVip2018-04-09/his_pay (e29440)
$ git branch -rorigin/HEAD -> origin/masterorigin/master

6.在远程仓库创建分支(分支名:e29440),并将当前本地分支(e29440)提交到远程分支上,这个时候就能在远程仓库看到分支和分支对应的项目了。

93287@DESKTOP-0413I27 MINGW64 /d/workspaceMaster-DongNaoVip2018-04-09/his_pay (e29440)
$ git push origin e29440
Total 0 (delta 0), reused 0 (delta 0)
remote: Powered by Gitee.com
To https://gitee.com/qrmc/his_pay.git* [new branch]      e29440 -> e29440


    7.远程仓库有多个版本,如何下载指定版本到本地,-b表示要从分支下载,slave就是具体的某个分支的名称。clone时创建新的分支(slave)替代默认Origin HEAD(master)。

93287@DESKTOP-0413I27 MINGW64 /d/workspaceMaster-DongNaoVip2018-04-09/ym_his_pay
$ git clone -b slave https://gitee.com/qrmc/his_pay.git
Cloning into 'his_pay'...
remote: Counting objects: 4226, done.
remote: Compressing objects: 100% (3311/3311), done.
remote: Total 4226 (delta 2091), reused 149 (delta 28)
Receiving objects: 100% (4226/4226), 4.13 MiB | 22.00 KiB/s, done.
Resolving deltas: 100% (2091/2091), done.
Checking connectivity... done.
93287@DESKTOP-0413I27 MINGW64 /d/workspaceMaster-DongNaoVip2018-04-09/ym_his_pay/his_pay (slave)
$ git branch
* slave

8.修改当前分支名用git branch -m新分支名,也可以通过git branch -m原分支名 新分支名。

93287@DESKTOP-0413I27 MINGW64 /d/workspaceMaster-DongNaoVip2018-04-09/ym_his_pay/his_pay (slave)
$ git branch -m ymSlave93287@DESKTOP-0413I27 MINGW64 /d/workspaceMaster-DongNaoVip2018-04-09/ym_his_pay/his_pay (ymSlave)
$ git branch
* ymSlave

三、总结:Git小册
        这段时间,学习下git的相关操作吧。记录一下,找到的Git小册,方便学习。https://git-scm.com/book/en/v2

参考博客:
        ①git如何回退到之前旧的版本 https://www.cnblogs.com/JacquelineQA/p/14059559.html
        ②Git-如何将当前Git最新版本回退到指定版本号,并为指定版本创建一个新分支同步到远程仓库 https://my.oschina.net/qrmc/blog/1806103
        ③2.3 Git 基础 - 查看提交历史 https://git-scm.com/book/zh/v2/Git-%E5%9F%BA%E7%A1%80-%E6%9F%A5%E7%9C%8B%E6%8F%90%E4%BA%A4%E5%8E%86%E5%8F%B2
        ④Git 将代码恢复到一个历史的版本 https://www.cnblogs.com/handongyu/p/9535885.html
        ⑤GIT RESET版本回退 https://www.freesion.com/article/9494674071/
        ⑥如何用 Git 将代码恢复到一个历史的版本 https://blog.csdn.net/fujunzhi1007/article/details/52401710

Git如何将代码回退到一个历史的版本相关推荐

  1. git push 操作代码回退

    总有一天你会遇到下面的问题. (1)改完代码匆忙提交,上线发现有问题,怎么办? 赶紧回滚. (2)改完代码测试也没有问题,但是上线发现你的修改影响了之前运行正常的代码报错,必须回滚. 这些开发中很常见 ...

  2. 两个git库之间迁移_从一个git仓库迁移代码到另一个git仓库(亲测有效版)(转)...

    不保留log等提交的记录的迁移就不说了,soeasy!代码复制粘贴就可以 目标:把A仓库的代码迁移到B仓库并且保存所有的git log,B仓库已经存在了哦,哪怕是个空仓库. 再说这个之前先说点其他.在 ...

  3. git回退历史版本无法上传_Git实用教程(四) | Git本地库操作(查看提交历史、版本前进回退)...

    Git实用教程专栏回顾 Git实用教程(一) | 为什么需要版本控制?(以嵌入式项目开发为例) Git实用教程(二) | Git简介及安装详解 Git实用教程(三) | Git本地库操作(仓库初始化. ...

  4. git使用:代码回退到某个版本

    一.更新本地仓库 git reset --hard 版本号 (只更新了本地,但是远方没有更新,git pull后仍存在最新版本) 二.更新远方仓库 git reset --hard 版本号 git p ...

  5. git 怎么回退已经push的版本_git push 操作代码回退

    (1)改完代码匆忙提交,上线发现有问题,怎么办? 赶紧回滚. (2)改完代码测试也没有问题,但是上线发现你的修改影响了之前运行正常的代码报错,必须回滚. 这些开发中很常见的问题,所以git的取消提交, ...

  6. Git回退到某个历史版本

    Git回退到某个历史版本 本人前段时间commit代码的时候,不小心commit一些本地的文件上去,并且还推到了开发分支代码,导致同事无法拉取代码,只能够回退版本了.注意,在回退版本之前,请复制粘贴你 ...

  7. 开发工具:Git 代码回退功能详解,很实用!

    来源:占小狼的博客 从接触编程就开始使用 Git 进行代码管理,先是自己玩 Github,又在工作中使用 Gitlab,虽然使用时间挺长,可是也只进行一些常用操作,如推拉代码.提交.合并等,更复杂的操 ...

  8. git 代码回退_「Vue 入门系列」第三期,适合新手入门的 Git 使用教程

    引言 Git 工具对于程序员来说已经不陌生了,在开发中也算是必不可少的工具了,本期我们就来看看如何利用 Git 管理代码,以及如何将代码提交到远程(线上) Github 仓库中. 主题:使用 Git ...

  9. Git 代码管理(代码提交和代码回退)

    Git 代码管理(代码提交和代码回退) Git的主要功能是代码管理,版本管理,分支管理. 在远程代码管理平台上,项目的代码被管理在一个远程代码仓库中,在本地,代码保存在一个本地代码仓库中.通过Git, ...

最新文章

  1. js关于正则的前后关联约束(前后预查)
  2. 中科院调查组成立!杨辉发表声明,并对举报信作出详细回应
  3. iOS LaunchScreen和LaunchImage的转换启动图
  4. 非关系型数据库(非RDBMS)介绍
  5. Java中Lambda表达式的使用(转)
  6. STM32L系列与普通STM32F系列的比较
  7. java经典算法(七)---zws
  8. 2022华为机试真题 C++ 实现【事件推送】
  9. 【误码率仿真】基于matlab LDPC编译码误码率仿真【含Matlab源码 2079期】
  10. COOC2.0一键做邻接表(多元组)+共现矩阵+相异矩阵+频次统计
  11. 你全记住了 ,你就是老中医
  12. 【网易】网易2018实习生招聘笔试题-测试开发实习生
  13. 微信学习:我的学习测试环境(刚看我的DZd动力空间后台,发现推荐后双方有30软妹币福利,双赢哦)
  14. 屏幕截图工具 php调用,PicPick 全屏幕截图工具
  15. 简单说说 Servlet
  16. linux删除每行首字符,vim技巧:删除行首、行末的空白字符,删除空白行
  17. ibatis使用方法
  18. 牛逼!我竟然能在 VS Code 里逛知乎、发文章
  19. EOS实战:创建一个EOS 安全账号(冷钱包)
  20. WRF-Chem笔记——模式运行流程

热门文章

  1. OSI七层网络模型和TCP/IP四层网络模型的异同
  2. es6在原生代码的用法_原生JavaScript之es6中Class的用法分析
  3. golang实现生产者消费者模型
  4. card allocation
  5. mapboxGL中popup遮挡的优化
  6. 产品上线测试很重要,大致过程是怎样的呢?
  7. java下拉菜单选择前弹提示框_javascript实现下拉提示选择框
  8. 【我的C语言学习进阶之旅】解决 Visual Studio 2019 报错:错误 C4996 ‘fscanf‘: This function or variable may be unsafe.
  9. ROS学习13-NVIDIA JETSON TX2 激光雷达-思岚RPLIDAR S1测试hector_mapping(rviz上渲染显示周围环境)
  10. 英文情书是这样写成的[爆笑]