真实测试案例:
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、回退后因为远程库中未改变,拉取代码时会拉取最新代码覆盖本地
标签:reset,HEAD,git,--,版本,回退,退回 来源: https://www.cnblogs.com/GTbk/p/16112876.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。