关于git回退版本的一点心得
我由于开发中不小心在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是不会生成新的提交的,git revert会生成新的提交。】
1、
git reset --mixed
当前head指针指向回退到的提交记录上,后几次提交改变的文件放在了本地暂存区,


git push

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

解决办法如下:
然后强制push成功:

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


提交记录也恢复到了前两次提交。
git log可以查看当前存在的两次提交记录,git reflog可以查看所有提交记录:


2、
git reset --soft 第四次提交的commit

文件全部恢复,本地暂存区有记录。
3、
git reset --hard 第二次提交的commitid

git revert
git revert 第三次提交的commitid git push


revert的结果是:只是把那一次的修改的东西删除了,这里只是把第三次提交增加的3.txt删除了,并且会增加一条提交记录。
关于git回退版本的一点心得的更多相关文章
- git回退版本: 回退本地代码版本 + 回退服务器代码版本
1.回退本地代码版本 借助IDEA开发工具回退版本,点击Version Control ,查看历史版本号: 右击想要回退的版本号,选择Reset Current Branch hear... 选择 H ...
- git 回退版本
回滚到指定的版本 git reset --hard e377f60e28c8b84158 强制提交 git push -f origin master
- git回退版本,已经commit过的文件丢了
参考:https://blog.csdn.net/qq_33877149/article/details/79705611 可以用 git reset --hard fa8694b 回退到以上相应的位 ...
- git回退版本,再返回最新分支git pull失败的解决经验
点击"蓝字"关注我吧 作者:良知犹存 转载授权以及围观:欢迎添加微信公众号:Conscience_Remains 总述 一篇解决gti分支切换问题的文章,大家应该都有过 ...
- Git回退到服务器某个版本正确姿势
背景: Git协作中,成员不可避免地会提交一些错误的版本,由于Git相比SVN引入了本地仓库,操作会相对复杂,以下为姿势分解 找一个源文件RspUtils.java,加上一行注释 //测试回退git服 ...
- Git(时光机-版本回退)
现在,你已经学会了修改文件,然后把修改提交到Git版本库,现在,再练习一次,修改readme.txt文件如下: Git is a distributed version control system. ...
- git reset 版本回退
git log 查看所有提交信息. commit 67692318180bed6b2a17db0708cfbe0231e33db3 (HEAD -> master) Author: kingBo ...
- Git学习--版本回退
现在,你已经学会了修改文件,然后把修改提交到Git版本库,现在,再练习一次,修改readme.txt文件如下: Git is a distributed version control system. ...
- git远程版本回退
本文为博主原创,未经允许不得转载: 之前在git提交版本时,发现将新开发的代码提交到了另一个分支上,为了不影响提交分支代码的 功能,需要回退到之前的版本. 在使用命令回退的时候,一直没有回退成功,有个 ...
随机推荐
- Python的日志功能
python自带的logging是日志处理模块,可以记录日志,并输出到控制台和文件等.日志分5个级别:DEBUG:调试信息,权重10INFO:一般信息,权重20WARNING:警告信息,权重30ERR ...
- 利用python去实现数学基本值的计算
def get_nums(): nums = []#获取列表 num = input('请输入数字:').strip() while num != '': nums.append(num)#添加数字 ...
- Mysql—主从复制
https://www.jb51.net/article/137925.htm https://blog.51cto.com/13706760/2171361 https://www.cnblogs. ...
- fastdfs-nginx-module安装和配置
fastdfs-nginx-module安装和配置 为什么要在fastdfs的storage端,安装fastdfs-nginx-module? 答案:https://www.cnblogs.com/l ...
- Linux 修改/etc/sudoers 可被任何修改,如何解决
今天不小心,修改了/etc/sudoers的权限 改成了 777的权限, 于是每次使用sudo都会弹出 sudo:sudo /etc/sudoers is world writable sudo:no ...
- C++学习一 结构与结构体
结构体属于C++与C区别之一. 代码例子如下(来自<C++程序设计>): #include <iostream> #include <string> using n ...
- shiro异步请求返回JSON响应
shiro异步请求返回JSON响应 需求1:当shiro请求资源,但是没有进行认证时,默认是进行重定向,现在需要返回JSON响应.注意异步请求,服务器重定向后,ajax拿到的是浏览器重定向后的到的页面 ...
- MySQL学习笔记6——备份与恢复
备份与恢复 备份与恢复 数据库-->sql:备份 sql-->数据库:恢复 1.数据库导出SQL脚本 >mysqldump -u用户名 -p密码 数据库名>生成的脚本文件路径 ...
- 关于webpack的面试题
随着现代前端开发的复杂度和规模越来越庞大,已经不能抛开工程化来独立开发了,如react的jsx代码必须编译后才能在浏览器中使用:又如sass和less的代码浏览器也是不支持的. 而如果摒弃了这些开发框 ...
- A1047 Student List for Course (25 分)
一.技术总结 首先题目要看清湖,提出的条件很关键,比如for循环的终止条件,特别注意. 还有这个题目主要考虑到vector的使用,还有注意一定要加上using namespace std; 输出格式, ...