• Git版本控制--05--可以吃后悔药之版本回退


    当我们提交了很修改的文件后,第二天一早突然觉得,昨天的文件其实不用修改,这时候怎么办呢?

    git给我们提供了吃后悔药的机会。

    首先:我们可以通过git log命令查看,我们的提交记录。

    $ git log
    commit 51b73ae20c9be52a9c1893b52cb58d9f45ed3106 (HEAD -> master)
    Author: YiboChen <17630508316@163.com>
    Date:   Sun Aug 9 00:44:23 2020 +0800
    
        在learngit文件中添加了几个字
    
    commit 3089e7c13d1d6c1b67931531eb7bc4a5bf1af6ad
    Author: YiboChen <17630508316@163.com>
    Date:   Sun Aug 9 00:28:51 2020 +0800
    
        再次提交
    
    commit f2aa600de1237c5943e3d402383d58b7fc136590
    Author: YiboChen <17630508316@163.com>
    Date:   Sun Aug 9 00:26:36 2020 +0800
    
        提交另一个learngit文件

    从上面的记录可以看出,我们总共提交了三次。这些提交记录,就像时间轴一样被连成了一条线。

     倘若我们想要回到某个“时刻”(版本)的状态。该怎么做呢?

    使用git reset --hard 版本号 命令 即可回退到某个版本(从下面可以看出 当前的版本已经回到了 "再次提交"的时候了)

    $ git reset --hard 3089e7c13d1d6c1b67931531eb7bc4a5bf1af6ad
    HEAD is now at 3089e7c 再次提交

    此时我们可以通过gitk调出可视化命令 来查看一下版本提交提示。

     可以看出 提交日志就剩下两条了。也就是我们现在存在的就剩两条版本了。

    这时有一种情况要考虑:你从2020年做时光机来到了1999年,结果你发现你回不去了,怎么办?

    第一种情况:我们还没有关闭git bash命令窗口 还能够往上翻看到 最新的版本是什么,然后通过git reset --hard 版本号 的方式回到最新的版本。

    $ git reset --hard 51b73ae20c9be52a9c1893b52cb58d9f45ed3106
    HEAD is now at 51b73ae 在learngit文件中添加了几个字

    使用gitk看一下现在的历史时间轴

     可以看到,又恢复到了之前的三个。

    第二种情况:我们已经关掉了git bash命令窗口 而且我们是第二天才想起来,之前的版本回退是自己草率了,自己想回到最新的版本,那么这时,git提供了一个git reflog命令,可以解决我们的问题。

    $ git reflog
    51b73ae (HEAD -> master) HEAD@{0}: reset: moving to 51b73ae20c9be52a9c1893b52cb58d9f45ed3106
    3089e7c HEAD@{1}: reset: moving to 3089e7c13d1d6c1b67931531eb7bc4a5bf1af6ad
    51b73ae (HEAD -> master) HEAD@{2}: commit: 在learngit文件中添加了几个字
    3089e7c HEAD@{3}: commit: 再次提交
    f2aa600 HEAD@{4}: commit (initial): 提交另一个learngit文件

    从倒数第三行记录可以看出,最新版本的版本号是 "51b73ae",我们就仍可以通过使用git reset --hard xx命令回到最新版本了。

  • 相关阅读:
    leetcode 116,117,129,145,199,230,337
    leetcode 897,JZ68,JZ17,95,96,105,113,114
    leetcode 404,530,543,563,572,589,617,637,700
    leetcode 397,784,898,100,101,104,108,110,111,112,226,235,257
    leetcode 78,137,187,260,393
    leetcode 169,190,191,665,342,476,1290
    leetcode 44,56,179,274,853,948
    leetcode 55,134,376,406,435,452,621
    leetcode 122,392,455,605,860,874,1005
    leetcode (堆->hard) 23,218,239,295,407,786
  • 原文地址:https://www.cnblogs.com/bigbosscyb/p/13461312.html
Copyright © 2020-2023  润新知