VS2019 Detached Branch Rebase进行中分支操作异常问题
问题场景
- 未接触过Git命令行操作,已查阅同类问题但公开方案均需执行Git命令,团队使用Microsoft Visual Studio Team Foundation Service做版本管控,本地环境为VS 2019,在VS内完成分支合并操作后出现功能异常。
- 异常触发链路:合并操作阶段弹出警告提示:
unable to pull because your local and remote branches changed. set your preferred git behavior for how to reconcile diverged branches in git settings.
随后通过工具栏路径「Toolbar | Git | Settings」修改了Rebase相关配置,配置项参考:
,修改完成后立刻触发下述异常。
异常现象
- 分支停留在Detached branch(分离头指针)状态,无法切换到其他分支,分支面板状态参考:

- 所有Git相关操作按钮均为灰色不可点击状态,无法推进任何分支流程,菜单状态参考:

- 无法基于master分支创建新分支,也无法完成新分支的切换操作。
- 本地执行
git status的返回结果参考:
无命令行处理步骤(全程使用VS2019自带GUI操作,无需执行Git命令)
- 备份当前改动:点击顶部菜单栏「Git」,找到「Stash(储藏)」选项,选择「Stash All Changes」,给储藏记录添加备注
detached_status_backup,确认后当前工作区所有改动会被临时存入Git储藏区,无丢失风险。 - 解除操作锁定:关闭当前打开的所有解决方案,避免文件被VS进程占用导致Git操作失效;进入「Git | Settings | Global Settings」配置页,找到
Rebase local branch when pulling选项,将之前修改的配置改回默认值Merge,保存配置后重启VS。 - 恢复正常分支状态:重启后打开Git分支管理面板,找到本地master分支,右键选择「Checkout(签出)」,若弹出改动相关提示,直接选择保留之前创建的储藏记录即可完成签出;签出完成后确认当前分支已切换至本地master,所有Git操作按钮恢复可点击状态。
- 收尾操作:若需要恢复之前储藏的改动,在Git储藏面板找到
detached_status_backup记录,右键选择「Apply Stash」即可将改动恢复到工作区;后续执行分支合并操作时,直接在分支面板右键选中目标分支,走「Merge 源分支到当前分支」流程,解决完合并冲突后提交推送即可。
内容的提问来源于stack exchange,提问作者Be05x5
相关产品推荐
相关产品推荐


,修改完成后立刻触发下述异常。