拉取master分支后git status不显示变更且提示HEAD detached问题
Git合并master后出现HEAD游离无待提交内容问题解答
问题原因
- 执行
git pull origin master前你的本地环境已经处于HEAD游离状态,没有绑定在本地newlogin-feature分支上,所有合并操作都作用在了游离的HEAD指向的匿名提交节点上,不会更新本地的newlogin-feature分支 git pull操作本身已经自动完成了无冲突合并提交,所以没有未提交的变更文件,git status自然不会展示待提交内容
解决步骤
- 第一步:保留当前游离HEAD下的合并成果,创建临时分支:
git branch temp-merge-result
- 第二步:切换到本地的
newlogin-feature分支:
git checkout newlogin-feature
- 第三步:将临时分支的合并成果合并到本地功能分支:
git merge temp-merge-result
如果没有冲突会自动完成合并,此时执行git status就能看到本地分支领先于远端origin/newlogin-feature,直接执行git push origin newlogin-feature即可完成同步。
- 第四步:清理临时分支(可选):
git branch -D temp-merge-result
替代方案(无需保留刚才的合并结果,重新同步)
如果不需要保留刚才在游离状态下的合并操作,可直接在本地newlogin-feature分支下执行:
git merge origin/master
无冲突的情况下会自动完成master到功能分支的合并,后续正常push即可。
注意事项
后续操作前可先执行git branch确认当前所处分支,带*标记的为当前绑定的分支,避免在游离状态下执行合并、提交操作。
内容的提问来源于stack exchange,提问作者user804401
相关产品推荐
相关产品推荐

