
背景
如上图,根据图片中的 Git 错误提示,我们遇到的问题是 本地分支落后于远程分支 ,导致 git push
被拒绝。
问题原因
- 远程仓库的
master
分支有其他人推送的新提交,而您的本地master
分支未同步这些更新(即本地分支的提交历史落后于远程分支)。 - Git 默认禁止非快进式推送(
non-fast-forward
),以防止覆盖远程的更改。
解决方法
1. 先拉取远程更改并合并
运行以下命令同步远程分支到本地:
bash
git pull origin master
- 此操作会将远程的
master
分支拉取到本地,并尝试自动合并(merge)。 - 如果合并时出现冲突,需要手动解决冲突后提交(
git commit
)。
2. 重新推送
合并完成后,再次推送本地更改:
bash
git push origin master
注意事项
-
强制推送(慎用)
如果确定需要覆盖远程分支(例如本地提交历史更完整),可使用强制推送:
bashgit push --force origin master
风险:会覆盖远程分支的所有更改,仅限个人分支或团队协商后使用。
-
推荐工作流
- 在推送前始终先执行
git pull
同步远程更改。 - 使用分支开发(如
git checkout -b feature-xxx
),避免直接操作master
分支。
- 在推送前始终先执行
错误提示翻译
![rejected]
:推送被拒绝。non-fast-forward
:本地分支缺少远程分支的最新提交。hint: Updates were rejected...
:提示您需要先拉取远程更改。