git push 错误,回滚 push操做

做者: 故事我忘了
我的微信公众号: 程序猿的月光宝盒

0.记一次使用git push后,覆盖了同事代码的糗事

前言:html

​ 都在WebStorm中操做,Idea或者PyCharm同理linux

​ 为了高度还原尴尬现场,这里在原有项目上新建分支,而后都在分支上操做,一方面怕本身搞炸了,一方面真实环境就是如此git

1.还原案发现场的准备工做

1.1 新建分支

图片

图片

图片

注意:

这里建立的分支仅仅在本地仓库微信

1.2. 分支提交到远程Git仓库

图片

远程查看确认,确实有,说明分支已经建立3d

图片

2.糗事发生契机

​ 这时候别人可能会和你改同一文件code

2.1 假设文件是这个html文件,而后你上传到远程分支

注意这时候都是在刚建立的那个分支操做orm

图片

图片

​ 能够看到远程分支已经有了htm

图片

2.2 这时我用另外一电脑修改这个文件,并提交到远程,故意模仿他人操做,如图,在远程分支上Linux已经更新过

图片

2.3 本地文件也作不同的修改,假设本身再不知情的状况下作push操做必然会引发版本冲突

图片

Remote changes need to be merged before pushingblog

推送前须要合并远程更改图片

​ 这时你点了合并

图片

图片

图片

​ 上图,把你的和他的都合并提交,可是出现以下警告

图片

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一下就好了,就是最新代码

图片

相关文章
相关标签/搜索