生活知识集
第二套高阶模板 · 更大气的阅读体验

提交代码提示rejected?别慌,常见原因和解决方法都在这

发布时间:2025-12-17 12:41:26 阅读:242 次

在用Gitref="/tag/245/" style="color:#8B0506;font-weight:bold;">提交代码时,遇到“rejected”提示挺让人头疼的。明明代码写得好好的,一推就出问题,还卡着不能交差。其实这种情况很常见,特别是在团队协作开发中,搞清楚原因后处理起来并不难。

为什么会被拒绝提交?

最常见的原因是远程仓库的进度比你本地的更新。比如同事先push了新代码,而你本地没有同步这些变更,这时候直接提交就会被拒。系统会提示类似这样的信息:

! [remote rejected] main -> main (non-fast-forward)

说白了就是你的本地分支落后了,Git 不允许直接覆盖别人的提交。

怎么解决?先拉再推

最简单的办法是先把远程的最新代码拉下来合并。执行下面这条命令:

git pull origin main

如果本地有未提交的更改,Git 会尝试自动合并。只要没冲突,拉下来之后再push就没问题了。

遇到合并冲突怎么办?

有时候pull之后会提示文件冲突,尤其是多人改了同一行代码。这时候Git不知道该留谁的,得手动处理。打开标出冲突的文件,你会看到类似这样的内容:

<<<<<<< HEAD
print("Hello World")
======
print("Hello Git")
>>>>>>> abc1234... Update script.py

删掉不需要的部分,保留正确的代码,保存后执行:

git add .
git commit -m "resolve merge conflict"
git push origin main

强制推送?小心使用

有些人图省事直接用 git push --force 强行推送,虽然能解决问题,但可能覆盖别人的工作成果,影响团队协作。除非你非常确定自己在做什么,比如修复了自己的错误提交,否则别轻易用这个命令。

养成好习惯,减少rejected发生

每次准备push前,顺手执行一次 git pull,相当于检查一下有没有遗漏更新。就像出门前看一眼有没有带钥匙,花不了几秒,能省下不少麻烦。特别是周五下午赶着提交代码的时候,更别偷懒。

另外,如果项目用了保护分支(比如main分支不允许直接push),就得走PR(Pull Request)流程。这时候被拒不是出错,而是正常流程,按要求提申请就行。