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 ...
随机推荐
- webpack指南(一)HRM+Tree Shaking
参考:https://www.cnblogs.com/PasserByOne/p/12084323.html https://blog.csdn.net/qq593249106/article/det ...
- zabbix配置主动式监控的步骤(原创)
步骤如下: 1.克隆模板.命名新的模板名,并点击"监控项",全选,批量更新时第一个“类型”打勾,客户端改为主动式: 2.添加客户端或更改原有的模板为新模板(服务器端添加客户端时的配 ...
- vue + typescript,定义全局变量或者方法
众所周知,在 vue中,如果想定义一个全局变量的方法很简单,直接在 vue的原型上挂载属性或者方法即可. 但是,加上了typescript之后, Vue.prototype.$xxx = xxx 这 ...
- place-holder样式
input::-webkit-input-placeholder, textarea::-webkit-input-placeholder { color: #777; } input:-moz-pl ...
- dTree
1.dtree.js源码 /*--------------------------------------------------| | dTree 2.05 | www.destroydrop.co ...
- poj3648 2-SAT进阶 记录点拓扑
Wedding Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10556 Accepted: 3220 Specia ...
- Gym101630L Laminar Family
题目链接:https://cn.vjudge.net/problem/Gym-101630L 题目大意: 对于一个集合的集合,若其中任意两个集合 \(A\) 和 \(B\) 都满足下述三个条件之一:\ ...
- SpringBoot2.x快速入门指南(一)
SpringBoot2.x快速入门指南(一) 准备工作 IDE: IntelliJ IDEA 2020.3 Java环境 jdk1.8 在官网快速创建SpringBoot项目 下面开始进入正题: 进入 ...
- 盘点Mysql的登陆方式
前置知识 我们想登陆到mysql中前提是肯定需要一个用户名和密码:比如 root root 在mysql中用户的信息会存放在 mysql数据库下的 user表中 可以 use mysql 然后sele ...
- (板子) 最小生成树 买礼物 luogu P1194
luogu题目传送门! 懒得找最小生成树模板了,就把这题当板子吧. 最小生成树,就是指对于一张图,我们将图转换成一棵树,连通的,同时让所有的边尽可能的小(废话). 最小生成树一般都采用Kruskal算 ...