前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于git回退版本的一点心得

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

作者头像
蓓蕾心晴
发布2019-05-15 14:09:14
2.6K0
发布2019-05-15 14:09:14
举报
文章被收录于专栏:前端小叙前端小叙

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

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

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

这次主要使用git  reset。

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

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

git reset其他用法体验:

git reset是不会生成新的提交的,git revert会生成新的提交。

1、

代码语言:javascript
复制
git reset --mixed  

当前head指针指向回退到的提交记录上,后几次提交改变的文件放在了本地暂存区,

代码语言:javascript
复制
git push

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

代码语言:javascript
复制
git push --force

解决办法如下:

gitlab如何支持强制push

然后强制push成功:

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

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

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

2、

代码语言:javascript
复制
git reset --soft 第四次提交的commit

文件全部恢复,本地暂存区有记录。

3、

代码语言:javascript
复制
git reset --hard 第二次提交的commitid

========》具体这篇文章解释的比较清楚

git revert 

代码语言:javascript
复制
git revert 第三次提交的commitid

git push

revert的结果是:只是把那一次的修改的东西删除了,这里只是把第三次提交增加的3.txt删除了,并且会增加一条提交记录。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-05-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • git reset其他用法体验:
    • 【git reset是不会生成新的提交的,git revert会生成新的提交。】
    • git revert 
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档