git回退版本

真实测试案例:
1、可以通过git log查看当前版本指向
2、然后 git reset --hard HEAD~1(也可以是其他退回语句) 退回一个版本
3、可以通过git log再次查看,指向应该变为上一个版本了
4、直接git push origin 分支 --force强推,因为就算commit也会提示让你pull代码,这是不行的
其实两步就可以完成:第一步:退回版本,第二步:强推上去就可以了


一、git reset退回指令分为两种

  1、git reset --soft
  表示只是改变了HEAD的指向,本地代码不会变化,我们使用git status依然可以看到,同时也可以git commit提交

  2、git reset --hard
  表示改变HEAD指向的时候,同时改变本地源码,不仅仅指向变化了,代码也回到了那个版本时的代码

 

二、两者的语法一样:

  (1)HEAD相当与当前、HEAD~1 退回上一个版本、HEAD~2 退回上两个版本、、、以次类推
    git reset --hard HEAD~1 /或者/ git reset --soft HEAD~1
  
(2)通过版本号进行退回指定版本, git log 或者 git reflog 可以查看当前的版本指向和版本号
    git reset --hard 版本号 /或者/ git reset --soft 版本号

 

三、退回之后:

  1、如果使用--soft回退的
    
(1)使用git log或git reflog验证下,可以看到HEAD已经指向上一个commits了
    (2)再使用git status看看,发现代码还在缓存区中
        这时候就好办了,我们选择很多,可以直接修改代码,再commit,也可以取消git add 命令

  2、如果使用--hard回退
    
这时候需要直接commit,推送到远程库中就行

  (push推送,改变远程仓库的版本时,会因为版本差异问题而无法推送,
    使用指令: 
git push origin 分支 --force  强制推送至远程分支,就大功告成)

  注意:1、两者退回后只是改变的本地,无法影响远程库,需要push到远程库
     2、回退后因为远程库中未改变,拉取代码时会拉取最新代码覆盖本地

 

posted @ 2022-07-07 14:31  40度丶仰望  阅读(8960)  评论(0编辑  收藏  举报