• git 回滚到指定版本并推送到远程分支


    1. 前言

       有些时候我们提交的远程代码(最新的代码)也许还不如上次写的好,于是我们就想回退到以前的版本。那么怎么回退呢
       对了,回退之前还是先备份下。。

    2. 版本回退

          git log //查看提交的历史
          git log --pretty=oneline //如果嫌上面的输出信息过多可以使用这条(只输出版本号)
          git reset --hard HEAD^ //回到上个版本,git reset --hard HEAD^^是上上个版本
    
    • 1
    • 2
    • 3

    好了现在你已经回到上个版本了

    3. 提交到远程仓库

    接下来如果你直接提交会发现提交不了, 说远端做了更改需要先pull一下, 如果pull那就又回到最新版本了,相当于没回退。
      思路:我们可以新建一个分支temp,然后把回退后的代码提交到temp分支上暂存,然后删除master主分支,新建一个master分支,提交现有代码到master上。

    /*1.新建分支*/
    git checkout -b temp              //新建分支并切换到temp分支
    git push origin temp:temp         //将代码push到temp分支
    /*2.删除主分支*/
    git push origin --delete master   //删除远端主分支
    git branch -d master              //删除本地主分支
    /*3.新建主分支*/
    git checkout -b master            //新建主分支并切换到主分支
    git push origin master            //提交主分支
    /*4.删除暂存分支*/
    git branch -d temp
    git push origin --delete temp
    

    注意:在github下,操作(删除或重建分支)需要在github网页上切换当前分支,如你要删除master,就要将分支切换到建的temp分支上。(可以理解为自己不能删除自己)
    (项目主页->Settings即可看到)

    思路一

    备注说明

    -- 本地分支回滚到指定版本
    git reset --hard <commit ID号>
    -- 强制推送到远程分支
    git push -f origin <branch name>
    

    思路二

    实际开发过程中,有时候我们会发现历史版本是对的,当前版本和远程分支是错的情况。我们这时候需要回滚到历史版本,并且让远程分支也回退到历史版本,下面来说一种解决办法。

    1,先把本地的分支回退到历史版本:
    1.1 使用 命令查看历史版本
    git log --pretty=oneline
    1.2 使用下面命令回滚,我们这里回滚到上一个提交版本

    git reset --hard HEAD^
    注意:上一个版本就是HEAD,上上一个版本就是HEAD,当然往上100个版本写100个比较容易数不过来,所以写成HEAD~100

    2,把当前分支push到远程仓库并且让远程仓库和当前分支保持一致:
    2.1 使用命令,这里假定我们当前的分支名为master

    GIt 提供了一个命令 git reflog 来记录本机电脑的每一次命令。
    $ git reflog

    通过 id ,来回退曾经的版本。
    $ git reset --hard HEAD^
    借鉴
    https://www.liaoxuefeng.com/wiki/896043488029600/897013573512192

    https://www.pianshen.com/article/3506254578/

  • 相关阅读:
    Three.js中引入dat.gui库实现界面组件控制动画速度变量
    Three.js中使用requestAnimationFrame方法实现立方体转动和小球跳动的动画
    Windows下使用Java API操作HDFS的常用方法
    Windows下配置Hadoop的Java开发环境以及用Java API操作HDFS
    HDFS的访问方式之HDFS shell的常用命令
    CentOS7上搭建Hadoop集群(入门级)
    CentOS7中怎样安装JDK与配置环境变量
    【2021-08-05】哪怕天踏下来,也要当被子盖
    【2021-08-04】连岳摘抄
    【2021-08-03】里程碑
  • 原文地址:https://www.cnblogs.com/liliuyu/p/13823675.html
Copyright © 2020-2023  润新知