问题描述:
今天在项目中提交代码的时候不小心提交代码到了detached HEAD中
原因:
在idea中点了“Reset Current Branch to Here...”后,导致HEAD指针指向了某一个具体的commit id上,而不是分支上。在我提交代码的时候idea弹窗提示我“Commit in Detached HEAD”,但是我没有仔细地阅读弹窗提示, 直接点击了commit按钮,导致代码提交到了游离状态的HEAD上。在后边想要推送到远程的时候发现idea右下角显示当前分支的位置显示的并非是我的分支,而是commit id,此时我不管不顾地点了check out到我的分支,然后发现自己刚才提交的代码找不到了。经过一段时间的研究之后,找到了破解之法。
解决方案:
1. git branch 临时分支名称 commit_id
2. git checkout 自己的分支
3. git merge 临时分支名称
遇到的问题:
1. 期初我根据这个流程进行操作了好几次都不成功,后来发现由于我在游离HEAD上提交了两次代码,而我在解决方案的第一步中一直用的是第一次的commit_id,最终解决问题后发现,应该用第二次的commit_id。
其他: