远端仓库比你本地多出了新的提交,Git 拒绝用你当前的提交直接覆盖。
解决方案 :
1)先把远端最新内容拉下来
bash
git pull origin master --rebase # 或 git pull origin master
- 如果远端与你本地修改的是 不同文件,会直接快进合并,无冲突。
- 如果出现 冲突,终端会提示哪些文件冲突,打开对应文件手动解决后:
bash
git add <冲突文件>
git rebase --continue # 若用的是 --rebase
2)确认状态
bash
git log --oneline -5
看到本地 HEAD 已经与远端最新提交位于同一条链即可。
3)再推送
bash
git push origin master
若不想处理冲突、直接强制覆盖(慎用,会丢弃远端新提交):
bash
git push origin master --force-with-lease
总结:先 git pull
(解决冲突后)再 git push
,冲突即可消失。