解决git合并冲突(超详细)原创

写在前面:如果日常没有经常拉取远端代码习惯的话, 在提交代码的时候可能会遇到代码冲突*的情况。下面我就展示一种常用的提交代码的方式,遇到冲突了,如何最优解决的。(尝试了很多种, 最喜欢这种方式!)*


✅ 完整流程总结如下:

🧭 场景描述

你在本地做了修改并提交了代码:

git add .
git commit -m "本地提交"

然后尝试推送:

git push origin main

结果失败,提示冲突或类似信息:

! [rejected]        main -> main (non-fast-forward)
error: failed to push some refs to '...'
hint: Updates were rejected because the remote contains work that you do not
hint: have locally.

🔁 正确处理流程:使用 git pull --rebase

1. 拉取远程更新并变基到本地提交之上

git pull --rebase

这时 Git 会尝试将远程的最新提交应用到你的本地提交之前,并可能会提示冲突。


2. 查看冲突文件

Git 会列出冲突的文件。你可以通过以下命令查看哪些文件处于冲突状态:

git status

冲突文件中会出现如下标记:

<<<<<<< HEAD
远程版本的内容
=======
你的本地内容
>>>>>>> ...

3. 手动解决冲突

用编辑器打开每个冲突文件,找到上面这种标记区域,进行以下操作:

  • 删除你不想要的部分。
  • 整合你需要保留的代码。
  • 删除所有冲突标记(<<<<<<<, =======, >>>>>>>

4. 标记冲突已解决

解决完一个文件后,要将其加入暂存区:

git add <filename>

解决完所有冲突后,继续 rebase 流程:

git rebase --continue

如果还有更多冲突,重复上述步骤;如果没有,则 rebase 成功完成。


5. 最终推送到远程仓库

git push origin main

此时应该可以成功推送。


📌 总结一句话:

git push 被拒绝时,使用 git pull --rebase 合并远程更改,手动解决冲突后继续 rebase,最后再 push 即可。


🧠🧠🧠 总结整个流程(带说明)----强烈建议好好理顺一下这个逻辑

步骤说明
git add + git commit你的代码本地提交成功了
git push失败(远程有更新)
git pull --rebase拉下远程更新,并尝试把你的提交“重放”在它之后
(遇到冲突)Git 暂停 rebase,提示你解决冲突
手动修改冲突文件解决冲突
git add 冲突文件告诉 Git:“我处理完这个文件了”
git rebase --continueGit 会用你修改后的内容自动重新 commit
最终 git push推送最新的 commit 到远程分支

💡 小贴士

命令用途
git rebase --abort放弃当前 rebase 操作,回到 rebase 前的状态
git stash + git pull + git stash pop另一种方式,适用于不想直接 rebase 的场景
使用 IDE 工具VSCode、IDEA 等提供图形化冲突解决界面,更直观

版权声明:

本文为 兰舟比特 原创内容,如需转载,请注明出处及作者,禁止未经授权的引用或商用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

兰舟比特

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

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

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

打赏作者

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

抵扣说明:

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

余额充值