真实测试案例:
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、回退后因为远程库中未改变,拉取代码时会拉取最新代码覆盖本地
原创文章,作者:,如若转载,请注明出处:https://blog.ytso.com/271804.html