git push 新建本地分支提交到远程分支失败解决办法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git push 新建本地分支提交到远程分支失败解决办法相关的知识,希望对你有一定的参考价值。
参考技术A send-pack: unexpected disconnect while reading sideband packeterror: failed to push some refs to
发生错误如下:
然后再:git push --set-upstream origin dev 就成功了
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.步骤
按照上面的步骤进行操作。
在后面提交的时候,直接强制提交,
则效果是:
可以看到一开始的
对应远程的文件
至此就恢复以及修改了,Linux端只要pull一下就行了,就是最新代码
以上是关于git push 新建本地分支提交到远程分支失败解决办法的主要内容,如果未能解决你的问题,请参考以下文章