如何修复本地Test-A分支与origin/Test-A分支分叉问题?
解决本地Test-A分支与远程origin/Test-A分叉的问题
问题原因
你将Test-A合并到Test-B后,远程origin/Test-A分支被其他人推送了新提交(累计21个),而你本地Test-A还有5个未推送到远程的提交,导致双方提交历史分叉。
解决方案
分两种场景处理:
场景1:本地的5个提交仍需保留(未合并到其他分支)
这种情况用rebase同步远程更新,让提交历史更线性:
- 若本地有未提交的修改,先临时缓存:
git stash - 拉取远程分支并将本地提交变基到远程最新提交之上:
git pull --rebase origin Test-A - 若遇到冲突,手动修改冲突文件后,执行:
重复此步骤直到rebase完成git add . git rebase --continue - 恢复之前缓存的本地修改:
git stash pop - 最后推送同步后的本地分支到远程:
git push origin Test-A
场景2:本地的5个提交已通过MR合并到Test-B,无需保留
直接将本地分支重置到远程最新版本(此操作会丢弃本地未推送的提交,请确认后执行):
git reset --hard origin/Test-A
注意事项
- 执行
git reset --hard前,务必确认本地未推送的提交已经备份或已合并到其他分支,避免代码丢失 - 团队协作场景下,拉取远程更新前最好和队友确认分支状态,减少冲突概率
内容的提问来源于stack exchange,提问作者flash
相关产品推荐
相关产品推荐

