首页 > 其他 > 详细

关于git回退版本的一点心得

时间:2019-05-09 12:13:44      阅读:139      评论:0      收藏:0      [点我收藏+]

我由于开发中不小心在master分支上开发,忘记了切换分支,最后我直接在master分支上提交,push,在开发分支上merge了master分支。

然后,同事告诉我他的代码要准备上线了,然而我的代码还没测试通过肯定不能一起上线,于是,需要回退了。

平时项目中很少用到回退功能的,一直没有怎么尝试过git  reset 和git revert的区别,记忆也不深刻。

这次主要使用git  reset。

$ git reset --hard HEAD^        回退到上个版本
$ git reset --hard commit_id    退到/进到 指定commit_id
$ git push --force   强制推送到远程,千万不要拉取,否则又会把最新提交拉下来

git reset --hard在master回退到之前的某个版本之后,后面的提交记录则都消失了,是完全回退到当时提交的模样。而开发分支上之前合并的master分支的内容是不会跟着回退的,还是最新修改好的代码,可以继续在这基础上开发、测试。

git reset其他用法体验:

git reset --mixed

所有提交记录都在,当前head指针指向回退到的提交记录上,后几次提交改变的文件变为本地修改了的文件,

 

技术分享图片

 

技术分享图片

技术分享图片

技术分享图片

 

 此时提交会提示本地代码比远程的落后,push失败,改为git push --force 强制push, 会提示不允许强制push

技术分享图片

 

解决办法如下:

gitlab如何支持强制push

然后强制push成功:

技术分享图片

此时代码已变为第二次提交时的两个文件了:

技术分享图片

 

 技术分享图片

提交记录也恢复到了前两次提交。

 git log可以查看当前存在的两次提交记录,git reflog可以查看所有提交记录:

技术分享图片

 

关于git回退版本的一点心得

原文:https://www.cnblogs.com/beileixinqing/p/10837498.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!