Git常见问题记录:git出现“Your branch and ‘origin/master‘ have diverged”的解决方法【详细解释】

本文介绍了如何在Git中处理本地分支与master的冲突,包括无需保留本地修改的快速解决方法(gitfetchorigin,gitreset--hardorigin/master),以及保留本地修改的rebase方法(gitrebase,gitpull--rebase)。详细解释了gitpull--rebase过程中的冲突处理和提交步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


1、前言

说明您的本地子分支和master主分支已经分叉,有冲突产生!

2、最简单解决方法

如果不需要保留本地的修改,只要执行下面两步:

git fetch origin
git reset --hard origin/master

命令解析:
在这里插入图片描述

git fetch :命令用于从远程获取 master 主分支的最新代码库,并没有合并的操作;
git reset --hard :命令用于把本地分支代码,强制回退为 master 主分支的最新代码库,清空本地暂存区与工作区的所有修改。

3、保留本地修改的解决方法

3.1、使用如下命令:
git rebase origin/master
git pull --rebase

命令解析:
git rebase :顾名思义,就是重新定义(re)起点(base)的作用,命令用于把本地子分支变基到 master 主分支;
git pull --rebase :执行过程中会将本地当前分支里的每个提交 (commit) 取消掉,然后把将本地当前分支更新为最新的 master 主分支,其中:

git pull 的默认行为是 git fetch + git merge
git pull --rebasegit fetch + git rebase

3.2、执行完 git pull --rebase 之后如果有合并冲突,使用以下三种方式处理这些冲突:
git rebase --abort
git rebase --skip
git rebase --continue  合并冲突,结合"git add 文件"命令一起用与修复冲突,提示开发者,一步一步地有没有解决冲突。

1、使用 git rebase --abort
执行之后,本地内容会回到提交之间的状态,也就是回到以前提交但没有 pull 时的状态,简单来说就是撤销 rebase 。
2、使用 git rebase --skip
git rebase --skip 引起冲突的commits会被丢弃,因此,在使用skip时请慎重。
3、使用 git rebase --continue
合并冲突,本地如果产生冲突,手动解决冲突之后,结合"git add 文件"命令一起用与修复冲突,提示开发者,一步一步地有没有解决冲突。

3.3、最后如果要提交,就把内容 push 到远程仓库上:
git push origin master

谢谢点赞关注哈!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小菜狗编程笔记

你的鼓励将是我最大的动力!

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

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

打赏作者

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

抵扣说明:

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

余额充值