解决报错: ! [rejected]main -> main (non-fast-forward) error: failed to push some refs to ‘github‘

引言

在开发过程中,常常会遇到将本地更改推送到远程 Git 仓库时出现的冲突问题,尤其是当本地分支落后于远程分支时。这通常是因为其他人在你推送之前已经向远程分支提交了新的代码,这就导致你的本地分支与远程分支产生了分歧。在这种情况下,Git 会阻止你直接推送代码,以防止覆盖远程分支的更新。解决这一问题的常见做法是首先将远程分支的更改拉取到本地,然后合并更改,最后再推送到远程仓库。

本文将介绍如何通过一系列 Git 命令解决本地分支落后于远程分支的问题,并顺利将更改推送到远程仓库。

问题:当我push代码到仓库时,报了一个这样的错误。本地分支 main 落后于远程分支,导致无法推送变更。

在这里插入图片描述

解决方法

解决方法是先拉取远程的更新,合并后再推送。

1、将所有更改和未跟踪的文件添加到暂存区

git add -A

在这里插入图片描述

2、查看状态确认是否有文件已添加

git status

查看文件的状态,确保所有更改都已经被暂存

3、提交更改

git commit -m “fix: esint和prettier以及localstore存储问题” --no-verify

一旦所有更改都已暂存,运行提交命令,加上 --no-verify 参数跳过预提交钩子(例如 ESLint 检查等)。
在这里插入图片描述

4、将远程分支的更改拉取到本地并应用到你当前的更改

git pull --rebase origin main

将远程分支的更改拉取到本地,并将其应用到你当前的更改。此方法避免了产生合并提交,保持历史的简洁如果有冲突,
在这里插入图片描述
如果没有冲突,这个操作会将远程的更改应用到你本地的更改之上。

5、将远程分支的更改合并到本地并处理合并冲突

git pull origin main

如果在拉取远程更新时出现冲突,你需要手动解决冲突。解决冲突后,使用 git add 标记已解决的文件,然后继续提交。
在这里插入图片描述

6、push到远程仓库

现在,你的本地和远程分支已经一致,接下来应该可以顺利推送本地更改到远程。

git push origin main

在这里插入图片描述

总结

解决本地分支落后于远程分支的情况,核心在于通过拉取远程分支的更新并合并到本地,然后推送合并后的更改。使用 git pull --rebase 可以避免不必要的合并提交,保持 Git 历史的简洁。而遇到合并冲突时,手动解决冲突是解决问题的关键。通过以上步骤,开发者可以顺利同步本地与远程的代码,确保代码库的一致性并继续开发工作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yoona1020

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值