如何修复Git分支分歧问题?新手Git操作遇报错求助
Git分支分歧与推送失败问题解决
问题描述
本地dev分支做修改后推送失败,报错提示远程存在本地未同步的代码,需先执行pull操作;但pull时又提示分支分歧,必须指定整合方式,尝试git pull --ff-only也无法解决。同时此前在个人分支做过相同修改。
解决步骤
1. 备份本地dev分支(关键,防止代码丢失)
切换到dev分支,创建备份分支留存当前状态:
git checkout dev git branch dev-backup
2. 获取远程最新代码
拉取远程dev分支的最新状态,不自动触发合并:
git fetch origin dev
3. 选择分支整合方式(二选一)
方式一:合并远程代码(保留分支分叉历史)
适合新手,操作直观,会生成一个合并提交记录:
git merge origin/dev
- 若出现代码冲突:打开冲突文件,找到
<<<<<<<、=======、>>>>>>>标记的冲突区域,手动修改保留需要的代码,然后执行:git add <冲突文件名> git commit -m "合并远程dev分支代码"
方式二:变基本地代码(生成线性提交历史)
让本地dev的修改基于远程最新代码之上,提交历史更整洁(注意:若本地dev分支之前已推送到远程,不建议使用此方式,会改写远程提交历史):
git rebase origin/dev
- 若出现代码冲突:解决冲突后执行:
git add <冲突文件名> git rebase --continue - 若中途想放弃变基操作:
git rebase --abort
4. 清理重复修改内容
由于你在个人分支和dev分支做了相同修改,整合后可能出现重复代码或提交记录:
- 若个人分支的修改已无保留必要,直接删除分支:
git branch -D <你的个人分支名> - 若出现重复代码块,手动删除后提交修改:
git add . git commit -m "移除重复修改内容"
5. 推送本地代码到远程
完成整合后,推送dev分支到远程仓库:
git push origin dev
(可选)设置默认pull策略
为避免后续再出现分支分歧提示,可设置默认的pull整合方式:
# 全局设置(所有Git仓库生效) git config --global pull.rebase false # 使用合并策略 # 或仅当前仓库生效 git config pull.rebase false
内容的提问来源于stack exchange,提问作者Valentino Fabris Valenti
相关产品推荐
相关产品推荐

