git push 错误,回滚 push操作
个人微信公众号:程序猿的月光宝盒
0.记一次使用git push后,覆盖了同事代码的糗事
前言:
都在WebStorm中操作,Idea或者PyCharm同理
为了高度还原尴尬现场,这里在原有项目上新建分支,然后都在分支上操作,一方面怕自己搞炸了,一方面真实环境就是如此
1.还原案发现场的准备工作
1.1 新建分支
注意:
这里创建的分支仅仅在本地仓库
1.2. 分支提交到远程Git仓库
远程查看确认,确实有,说明分支已经创建
2.糗事发生契机
这时候别人可能会和你改同一文件
2.1 假设文件是这个html文件,然后你上传到远程分支
注意这时候都是在刚创建的那个分支操作
可以看到远程分支已经有了
2.2 这时我用另一电脑修改这个文件,并提交到远程,故意模仿他人操作,如图,在远程分支上Linux已经更新过
2.3 本地文件也做不一样的修改,假设自己再不知情的情况下做push操作必然会引起版本冲突
Remote changes need to be merged before pushing
推送前需要合并远程更改
这时你点了合并
上图,把你的和他的都合并提交,但是出现如下警告
Push has been cancelled, because there were conflicts during update. Check that conflicts were resolved correctly, and invoke push again.
Push已被取消,因为在更新期间有冲突。检查冲突是否已正确解决,并再次调用pull。
2.4 此时本地我已经做了版本合并,所以,再次pull
3. 正事来了.回滚吧
现在,你被告知Linux的为正确的修改,并且你上一步的提交影响到他了,要回滚push到Linux操作的阶段
3.1 将win给回滚调,留下Linux的代码
步骤
1. 在目标分支上copy revision number:
2. 右击项目依次选中:git->Repository->Reset HEAD
Reset Type选Hard,To Commit 写刚复制的版本号,
然后点击Reset按钮
这时候,代码已经回到了老的版本,这个时候不能提交代码,提交也是会冲突的。
4.提交
1.可以使用命令强制提交
git push -f
或者
2.使用Idea,(我使用的是这个方法)
在最新的commit上复制版本号
使用mixed类型,将上面复制的版本号粘贴进来:
git reset soft,hard,mixed之区别深解
又出来这个提示
3.再次pull
此时 代码是最新的正确的,
也就是Linux操作的正确修改
5:验证 上一步的强制push git push -f
1.说明
将程序从错误的复原,回滚到win操作
2.步骤
按照上面的步骤进行操作。
在后面提交的时候,直接强制提交,
则效果是:
可以看到一开始的
对应远程的文件
至此就恢复以及修改了,liunx端只要pull一下就行了,就是最新代码
git push 错误,回滚 push操作的更多相关文章
- Git误操作 git reset强制回滚 恢复commit方法
参考: 找回Git中丢失的Commit Git误操作 git reset强制回滚 恢复commit方法 使用Git时,常有误操作,在Commit之后又执行了git reset --hard HEAD强 ...
- Git回滚merge操作
执行完merge操作后,没有修改代码 1.命令 ⑴ git reflog 查看merge操作的上一个提交记录的版本号 ⑵ git reset –hard 版本号 这样可以回滚到merge之前的状态 2 ...
- git 版本库回滚(转载)
From:http://www.cnblogs.com/qualitysong/archive/2012/11/27/2791486.html From: http://www.tech126.com ...
- git 的版本回滚
当用git clone 复制远程代码库到本地时,使用 git branch 只能看到默认库(master),当远程库有多个分支时,可以使用 git branch -a 查看全部的分支, 然后git c ...
- git 远程分支回滚
git代码库回滚: 指的是将代码库某分支退回到以前的某个commit id [本地代码库回滚]: git reset --hard commit-id :回滚到commit-id,讲commit-id ...
- git本地代码库回滚(webstorm下)
git本地代码库回滚(webstorm下) 1. 场景 添加了一个文件[file-for-test.js]到git的控制下(并没有push到远程分支上) 进行了三次修改,并分别进行了三次commit( ...
- Git 使用revert回滚已提交的commit
在git使用中如果提交错误的代码至远程服务器,可以使用git revert 命令回滚单次commit并且不影响其他commit. 回滚最新一次的提交记录: git revert HEAD 回滚前一次的 ...
- GIT版本库回滚【图文版】
git 版本库回滚,在实际开发过程中总会遇得到 1. 先找出需要回滚的commitid git log -3 2. 重置本地版本库到指定commitid, 注意:本地改动将丢失 ...
- git如何正确回滚代码
git如何正确回滚代码 方法一,删除远程分支再提交 ①首先两步保证当前工作区是干净的,并且和远程分支代码一致 $ git co currentBranch $ git pull origin curr ...
随机推荐
- scrapy请求发送详解
scrapy自动发送请求 对start_urls列表中存储的起始url进行过请求的发送并没有通过手动实现,但是在parse函数中还是获取到了响应数据,这是因为爬虫文件中的爬虫类继承到了Spider父类 ...
- 14.6 kafka
14.6 kafka 为什么用消息队列 举例 比如在一个企业里,技术老大接到boss的任务,技术老大把这个任务拆分成多个小任务,完成所有的小任务就算搞定整个任务了. 那么在执行这些小任务的时候,可能有 ...
- 10 分离式web框架
10 分离式web框架 wsgiref模块: 将http请求封装成以键值对的形式封装成字典environ: "PATH_INFO"对应的值为请求文件路径, “QUERY_STRIN ...
- DPDK 无锁队列Ring Library原理(学习笔记)
参考自DPDK官方文档原文:http://doc.dpdk.org/guides-20.02/prog_guide/ring_lib.html 针对自己的理解做了一些辅助解释. 1 前置知识 1.1 ...
- C语言合法标识符(hud2024)
输入方式:先输入一个整型,再循环输入带空格的字符串. 思考:整型用scanf_s()输入.大循环输入字符串前用getchar()函数读取缓冲区的字符.然后,输入带空格的字符串就要用”gets_s()“ ...
- Htop/Glances/Dstat性能测试系统监控工具领域的瑞士军刀
原文链接:https://mp.weixin.qq.com/s/TvfzIy4uXHPOFQ1h5Q4KWg 建议点击原文链接查看 续上篇分享的[性能测试工具],今天整理了常用的系统监控工具,当然有特 ...
- CDN是啥?
CDN 介绍 CDN ( Content Delivery Network ),也即内容分发网络.通过将网站内容(如图片.JavaScript .CSS.网页等)分发至全网加速节点,配合精准智能调度系 ...
- 实验五:shell脚本编程
项目 内容 这个作业属于哪个课程 班级课程的主页链接 这个作业的要求在哪里 作业要求链接地址 学号-姓名 17043133-木腾飞 作业学习目标 1.了解shell 脚本的概念及应用2.掌握shell ...
- vue-cli3或者4中如何正确的使用public中的图片
标题说的很清楚了,就是要使用public中的图片 那么为什么要把图片放到public中呢,其实官网上面也说了,要么是需要动态引入非常多的图片,特别是小图标,如果放在assert中的话,会被webpac ...
- React-Native 爬坑爬坑
出现函数找不到问题一般都是this的指向问题,一般是用箭头函数解决,解决不了就传入this 在setState里面一定不能要直接写state引入的值,如: this.setState({now: th ...