借鉴:https://codewithhugo.com/fix-git-failed-to-push-updates-were-rejected/
问题来源:
一.远程分支出现了本地分支没有的改动,使得远程分支相较于本地分支的版本提前
二.有collaborater提交了代码,本地尚未同步
解决方法:
a.当本地和远程无变化时,直接
b.本地无提交,远程有变化,可以选择强制git重写本地文件
c.本地有提交,远程有变化解决方法一:软重启git,隐藏本地提交,hard-pull,再找回本地的隐藏,最后commit
版本回退
加上改动的本地文件
保存工作区
强制重写
释放本地工作区
接下来就是正常的commit和push了。
d.本地有提交,远程有变化解决方法二:本地新建分支
从当前需要提交的分支新建一个临时分支:
返回需要提交的分支后:
checkout到新建分支,并
查看对应的版本号
回到正常分支,使用 git cherry-pick + 版本号
之后正常push即可