回退_git代码如何回退到上一次提交前 - CSDN
  • 1、使用git log命令查看所有的历史版本,获取某个历史版本的id 比如:42294a2adc041c6b37d99fd776dac00a425e4b96 2.恢复到历史版本 git reset --hard 42294a2adc041c6b37d99fd776dac00a425e4b96 ...

    1、使用git log命令查看所有的历史版本,获取某个历史版本的id 比如:42294a2adc041c6b37d99fd776dac00a425e4b96
    在这里插入图片描述

    2.恢复到历史版本

    git reset --hard 42294a2adc041c6b37d99fd776dac00a425e4b96
    

    3、 把修改推到远程服务器( 注意:reset之后push到远程上会删除这个历史版本之后的所有版本 )。

    git push -f -u origin master  
    

    备注:强制push到远程 master分支

    备注:

    • 穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
    • 要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

    文章转载:https://blog.csdn.net/yezitoo/article/details/80184662

    展开全文
  • 主要内容: 1) HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard...

    主要内容:

    1) HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。
    2)用git log可以查看提交历史,可以查询到我们要返回版本的ID。
    3)版本回退之后,需要再次回到会退前,可以用git reflog查看命令历史,可以查看到每次命令的记录,里面会有我们需要的版本ID。

    假设在工作中,你将辛辛苦苦写了一半的代码改乱了,想要回到这次修改之前,而不至于所有的劳动功亏一篑,这时候我们该怎么做呢

    例如:我们已经有一个将 text 这个项目提交到Git 仓库了,并且已经有了多次的提交

    第一次提交:add index.html (首页布局已完成)
    第二次提交: add 1.txt
    第三次提交: change 1.txt

    这时候,修改 text1.txt 之后,我觉得之前的版本好像更合适一些,需要回退到之前的版本
    我只需要用到 git reset 就可以做到的


    情景一: 明确知道我们要回退到第几个版本

        打开相应的Git 命令行,在Git中,用HEAD表示当前版本,所以回退到上一个版本就只需要使用命令: ** git reset --hard HEAD^ **
        如果是上上一个版本的话,只需要使用命令: git reset --hard HEAD^^
    要是需要回退到20个版本之前的话,就可以使用命令: git reset --hard HEAD~20


    情景二:已经不记得是第几个版本了

    有时候,提交的东西多了,或者是一段时间后,再来继续这个项目,可能早就不记得到底是第几个版本了,这时候,我们可以使用命令:git log 来查看每次的更改记录

    $ git log
    commit 580361e6bf5ce744c0ca4a2295e97bc42f5a6c36 (HEAD -> master)
    Author: leyale mogu163@yeah.net
    Date: Sat Dec 1 11:44:08 2018 +0800
    chgange 1.txt

    commit 5a73f7b0689653dafddf5a37c1b3dde5b19f144e
    Author: leyale mogu163@yeah.net
    Date: Sat Dec 1 11:43:28 2018 +0800
    add 1.txt

    commit 52602b0b04b57b33310fa256707518b126d2648c
    Author: leyale mogu163@yeah.net
    Date: Sat Dec 1 11:42:12 2018 +0800
    add index.html

    从上面我们可以看到相关的提交日志,一共是3次修改,在Data中我们可以看到每次提交的具体时间,Data后面是我们每次提交的时候,所填写的提交备注,这样就可以知道自己需要回退到哪个版本了,另外值得注意的是commit 后面的一串字符,这个是我们的提交ID,每个人的都是不一样的,在这个时候,我们回退就可以直接借助这个ID来回退了
    ID回退命令: $ git reset --hard 52602b0b04b57b33310fa256707518b126d2648c
    执行后返回:HEAD is now at 52602b0 add index.html

    这时候,我们回到了第一次提交,也就是说,text 中就只有第一次提交的index.html这一个文件了


    情景三:回退到某一个文件之后,又需要返回到最近更新的某个版本

    原命令行窗口还未关闭: 直接往上查看一下要回到的那个版本的ID,然后执行命令:
    $ git reset --hard 580361e6bf5ce744c0ca4a2295e97bc42f5a6c36

    已经关闭:
    可以借助命令: $ git reflog查看每一次命令的记录在这里插入图片描述

    查看到之后,我们再利用 git reset 来返回到相应的版本即可,HEAD前面的一串字符为我们简写的ID
    命令:$ git reset --hard 580361e
    在这里插入图片描述

    大功告成,这时候再次查看你的text 文件夹,里面的以及修改过的 1.txt 已经回来啦

                                    </div>
    
    展开全文
  • 1.查看历史版本 查看所有的历史版本,获取你git的某个历史版本的id git log 2.恢复到历史版本 git reset --hard fae6966548e3ae76cfa7f38a461c438cf75ba965 3.把修改推到远程服务器 git push -f -u origin master ...

    1.查看历史版本

    查看所有的历史版本,获取你git的某个历史版本的id

    git log
    

    2.恢复到历史版本

    git reset --hard fae6966548e3ae76cfa7f38a461c438cf75ba965
    

    3.把修改推到远程服务器

    git push -f -u origin master
    
    展开全文
  • 前篇说了commit ID很重要,为什么重要呢?在这里揭晓啦!每当我们做错事的时候,总是很后悔,可是都没有后悔药吃,但是在Git这里,它提供后悔药。我先先创建一个"second.txt"文档,测试一下:创建好,并且...

    前篇说了commit ID很重要,为什么重要呢?在这里揭晓啦!

    每当我们做错事的时候,总是很后悔,可是都没有后悔药吃,但是在Git这里,它提供后悔药。

    我先先创建一个"second.txt"文档,测试一下:


    创建好,并且提交了一次。但是里面是空白的,并没有内容,现在我们再添加内容:第二次提交。

    然后再commit:


    我们看到它的commid ID,发现每次commit 后的ID都不一样。这有利于我们准确的吃某个时间段的"后悔药"。我们输入一下命令:

    git reset --hard HEAD^

    我们选择回到刚创建没有填写内容的版本。其中输入命令后,它提示 More? 我们填写了 “~”,这个符号表示,上一个commit的版本,然后我们就回到了 "second"这里了,我们看看文本里面的内容,发现是空的:


    我们,再继续吃后悔药,回到中文编码"第一次提交"的那个版本。为了不看那么多log信息,我们使用这个命令:

    git reflog

    这个 reflog 命令,是记录我们每一次输入的命令,然后我们找到 那段乱码的 commit ID,输入命令:

    git reset --hard fa8694b

    表示已经回到了 “第一次提交”的那个版本。同样的,工作区那里也只剩下这个 hello.txt,first、second也没有了。

    其实版本回退就是 HEAD 在时间线上的圈圈来回移动,你需要去哪里,填写上它的commit ID就可以了。画图理解:


    由于我们没有删除dev分支,所以dev分支依旧跟着它回退。


    git reset --hard

    表示查看当前 HEAD指向哪个“圈圈”。

    那么我们不要dev分支,该怎么删除呢?其实很简单,输入下面命令:

    git branch -d dev

    因为我们现在是回到了"第一次提交"这个版本,所以需要先合并,才可以删除,否则它会报错:



    迷迷糊糊的写了这一些。可能不太好,现在也夜深了,改天再回来修改吧。

    展开全文
  • 版本回退

    2019-07-03 22:52:48
    现在,你已经学会了修改文件,然后把修改提交到Git版本库,现在,再练习一次,修改readme.txt文件如下: Git is a distributed version control system. Git is free software distributed under the GPL. ...

    现在,你已经学会了修改文件,然后把修改提交到Git版本库,现在,再练习一次,修改readme.txt文件如下:

    i am gblfy
    i am yuxin
    

    然后,【工作区】-【暂存区】-【本地仓库】尝试提交:
    在这里插入图片描述
    修改readme.txt内容如下:

    i am gblfy
    i am yuxin
    i am gz
    

    提交到本地仓库,【工作区】-【暂存区】-【本地仓库】尝试提交:
    在这里插入图片描述
    在这里插入图片描述
    版本1:第1次提交

    i am gblfy
    

    版本2:第2次提交

    i am yuxin
    

    版本3:第3次提交

    i am gz
    

    版本控制系统肯定有某个命令可以告诉我们历史记录,在Git中,我们用git log命令查看:

     git log
    

    在这里插入图片描述

    git log命令显示从最近到最远的提交日志,我们可以看到3次提交,最近的一次是第3次提交,上一次是第2次提交,最早的一次是第1次提交

    如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数:

    git log --pretty=oneline
    

    在这里插入图片描述
    每提交一个新版本,实际上Git就会把它们自动串成一条时间线。如果使用可视化工具查看Git历史,就可以更清楚地看到提交历史的时间线:

    好了,现在我们启动时光穿梭机,准备把readme.txt回退到上一个版本,也就是第2次提交的那个版本,怎么做呢?

    首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交7ff6778…(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100

    现在,我们要把当前版本第3次提交回退到上一个版本第2次提交,就可以使用git reset命令:

    git reset --hard HEAD^
    

    在这里插入图片描述
    --hard参数有啥意义?这个后面再讲,现在你先放心使用。

    看看readme.txt的内容是不是版本第2次提交:

    cat readme.txt
    

    在这里插入图片描述
    果然被还原了。

    还可以继续回退到上一个版本第1次提交,不过且慢,然我们用git log再看看现在版本库的状态:

    git log
    

    在这里插入图片描述

    最新的那个版本第3次提交已经看不到了!好比你从21世纪坐时光穿梭机来到了19世纪,想再回去已经回不去了,肿么办?

    办法其实还是有的,只要上面的命令行窗口还没有被关掉,你就可以顺着往上找啊找啊,找到那个第3次提交commit id7ff6778...,于是就可以指定回到未来的某个版本:

     git reset --hard 7ff6778e
    

    在这里插入图片描述
    版本号没必要写全,前几位就可以了,Git会自动去找。当然也不能只写前一两位,因为Git可能会找到多个版本号,就无法确定是哪一个了。

    再小心翼翼地看看readme.txt的内容:

    cat readme.txt
    

    在这里插入图片描述
    果然,我胡汉三又回来了。

    Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD指针,当你回退版本的时候,Git仅仅是把HEAD从指向第:3次提交

    ┌────┐
    │HEAD│
    └────┘
       │
       └──> ○ 第3次提交
            │
            ○ 第2次提交
          	│
            ○ 第1次提交
    

    改为指向第2次提交

    ┌────┐
    │HEAD│
    └────┘
       │
       │    ○ 第3次提交
       │    │
       └──> ○ 第2次提交
            │
            ○ 第1次提交
    

    然后顺便把工作区的文件更新了。所以你让HEAD指向哪个版本号,你就把当前版本定位在哪。

    现在,你回退到了某个版本,关掉了电脑,第二天早上就后悔了,想恢复到新版本怎么办?找不到新版本的commit id怎么办?

    在Git中,总是有后悔药可以吃的。当你用$ git reset --hard HEAD^回退到第2次提交版本时,再想恢复到第3次提交,就必须找到第3次提交的commit id。Git提供了一个命令git reflog用来记录你的每一次命令:

     git reflog
    

    在这里插入图片描述
    终于舒了口气,从输出可知,第3次提交的commit id7ff6778,现在,你又可以乘坐时光机回到未来了。
    小结
    现在总结一下:

    HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id

    穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。

    要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

    展开全文
  • GitHub进行版本回退

    2019-02-22 14:49:06
    而资深程序员就会微微一笑,摸一摸锃亮的脑门,然后默默的进行版本回退。 对于版本的回退,我们经常会用到两个命令: git reset git revert 那这两个命令有何区别呢?先不急,我们后文详细介绍。 git reset ...
  • 1 简介最近在使用git时遇到了远程分支需要版本回滚的情况,于是做了一下研究,写下这篇博客。...3 本地分支版本回退的方法如果你在本地做了错误提交,那么回退版本的方法很简单 先用下面命令找到要回退的版本的co
  • 1.写在前面   我们在使用Git进行版本控制时,有可能会出现这种情况。...2.解决   首先将本地的内容回退到自己想要的版本。回退版本我一般使用 git reset    其中这条命令中又分为两种 git reset –hard
  • 还有回退命令reset。这一篇博客就记录一下该回退命令的简单使用。 场景 因为公司开发过程中,处理订单,限时购买等业务时,都是用的阿里云的消息队列MQ实现的。或者是两个系统之间的交互,同步信息,如用户在支付...
  • vim 撤销 回退操作

    2012-07-06 17:18:04
    在vi中按u可以撤销一次操作 u 撤销上一步的操作 ...Ctrl+r 恢复上一步被撤销的操作 ...如果你输入“u”两次,你的文本...如果你撤销得太多,你可以输入CTRL-R(redo)回退前一个命令。换句话说,它撤销一个撤销。要
  • 那么在git中如何进行版本回退呐   首先,在本地建立一个git项目,并且与 远程服务端(github) 上的项目进行关联(如果这一步骤有问题的童靴,请参考我的上一篇文章,害羞….);    1: 第一次建立git项目,...
  • svn版本回退

    2019-04-26 10:34:41
    SVN版本回退? 当一不小心把文件改错了或者误删除了文件并提交到了服务器,我们要取消这些修改的话,首先就是将这个文件还原到上一个修订的版本的内容(revert to this rebision ),然后将这个文件重新提交,那么...
  • sourceTree回退撤销commit

    2017-06-09 16:04:16
    不小心commit了一个文件,想回退回退到commit前的状态。本文介绍用sourceTree操作。 刚刚提交了不想提交的文件,状态如图1:  图 1 现在的目标就是把“回撤commit测试”这条回退回来,回退后应该是这个样子...
  • 2 问题如果提交了一个错误的版本,怎么回退版本?如果提交了一个错误的版本到远程分支,怎么回退远程分支版本?如果提交了一个错误的版本到公共远程分支,又该怎么回退版本?远程分支回滚的三种方法:自己的...
  • 结果只会将版本5相较于版本4的改动点进行回退,版本10相较于版本9的改动点(不包括前面说的改动点)不会回退到版本4。 2.选中目标文件或文件夹,右键:Subversion-Browse Changes... 3.输入你的回退版本号,这里...
  • 一、Git命令文件回退到指定版本 1、将本地工程内文件回退到某一版本 (1)用$ git log命令查看历史提交记录,会自动按时间倒序排序 (2)选定对应回退的commit ID,用git reset进行回退,$git reset --hard177...
  • GIT远程仓库回退方法

    2017-08-06 23:32:35
    GIT远程仓库回退方法 引用块内容 1 问题素描 如果提交注释错误如何回退 如果提交了一个错误的版本到了本地仓库如何回退 如果提交了一个错误的版本到了远程公共仓库如何回退 2 提交注释错误如何回退如果只是...
  • (1)首先回退本地版本: 选择版本控制里的回退功能,并在github中找到你想回退版本的校验码,我的为:cea32e8...。 选择以hard形式回退,本地回滚完成。 (2)回退远程仓库版本 同样继续使用Reset Head...
  • 使用 --soft 参数的话会回退到之前的版本,但是保留当前工作区的修改,可以重新提交 git reset --hard <版本号> 3.为了覆盖掉远端的版本信息,使远端的仓库也回退到相应的版本,需要加上参数--force ...
  • IDEA git分支回退指定的历史版本 场景 当我提交了本次修改到本地和远程分支后,发现我本次提交还少了一些修改内容,或者说本次修改是完全错误的,然而也push到远程仓库去了。如何回退? 问题 已经提交到仓库...
1 2 3 4 5 ... 20
收藏数 201,379
精华内容 80,551
关键字:

回退