错误信息为:
error: failed to push some refs to 'http://**:**/**/**.git'
hint: Updates were rejected because the tip of your current branch is behind
To http://**:**/**/**.git
! refs/heads/master:refs/heads/master [rejected] (non-fast-forward)
Done
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
大致翻译为:
错误:无法将某些引用推送到“http://**:**/**/**.git'
提示:更新被拒绝,因为当前分支的提示已过期
到http://**:**/**/**.git
!refs/heads/master:refs/heads/master[拒绝](非快进)
多恩
提示:它的远程对应项。集成远程更改(例如。
提示:“git pull…”)。
提示:有关详细信息,请参阅“git push--help”中的“关于快进的注释”。
指的是,我们本地的仓库分支版本已经滞后,线上存在最新版本,所以不能进行推送操作
此时我们需要先将线上分支的内容update到本地,处理完冲突的内容后,再进行push操作
在项目路径,终端执行:git pull
这时候有可能出现以下异常
error: Your local changes to the following files would be overwritten by merge:
# 错误:您对以下文件的本地更改将被合并覆盖:
大致说明就是:本地代码会被线上分支所覆盖(如果本地编写的代码比较重要的话,肯定是不能被覆盖)
git pull
实际上就是一个远程分支merge到本地分支的过程,git pull
出现问题说明出现冲突(说明本地分支不是基于最新版本进行开发,那么就会merge失败)
解决方案
一、保留本地修改的文件
git stash
将本地修改的放到堆栈区git pull
拉取最新代码到本地git stash pop
把堆栈区的本地修改代码还原上面步骤进行完毕之后,遇到本地代码与git pull
代码有冲突需要手动解决,然后就可以进行git push
了
关于:git stash的用法
二、只想保留线上版本代码,选择完全覆盖本地代码
git reset --hard
:本地版本回退git pull
:更新线上分支最新代码