git push 错误,回滚 push操作

Posted jsccc520

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的为正确的修改,并且你上一步的提交影响到他了,要回滚pushLinux操作的阶段

技术图片

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之区别深解

git reset soft,hard,mixed之区别深解

技术图片

技术图片

又出来这个提示

技术图片

3.再次pull

技术图片

? 此时 代码是最新的正确的,

? 也就是Linux操作的正确修改

5:验证 上一步的强制push git push -f

1.说明

  将程序从错误的复原,回滚到win操作

2.步骤

  按照上面的步骤进行操作。

  在后面提交的时候,直接强制提交,

技术图片

则效果是:

技术图片

可以看到一开始的

对应远程的文件

技术图片

至此就恢复以及修改了,Linux端只要pull一下就行了,就是最新代码

技术图片

以上是关于git push 错误,回滚 push操作的主要内容,如果未能解决你的问题,请参考以下文章

git回滚线上代码

git在push之后进行代码回滚

git commit/push后如何回退

git revert 与 git reset

git回滚线上代码

git项目初次push提示error: failed to push some refs to https://gitee.com/xxxx/gittest.git’解决方案 --九五小庞(代码片段