遇到不会解决的问题,最好不要乱动
以免给自己解决错误路上徒增成本!
昨天着急下班,眼看就要6点了,有事在身本想脚底抹油,溜之大吉的,就在我git push 的时候命令给我之前没就见过的bug,如下:
左下角显示的本来应该是红字高亮后面的指向(当时着急跑路没截图尴尬);
当时是可以 add 并且commit的 但是就是push不上去;
什么是头指针分离?
所谓的分离头指针状态就是HEAD不再指向分支,而是直接指向某个commit;
- 造成这样的原因是什么?
如果执行git checkout commitId
就会导致HEAD指向该次提交,而不在指向分支,然后提示头指针分离, 之后你进行的所有的操作都是正常进行的,但是不在任何分支上!如果此时切换回master分支,你会发现刚刚在分离头指针状态下对文件做了修改提交在master分支下是看不到的,并且由于c3这次提交不在任何分支上,在未来极有可能会被Git清理掉。 遇到头指针分离应该怎么处理
首先,遇到事情不要慌,拿出手机发个朋友圈,来杯咖啡等待大神帮忙,或者自行百度均可!(开开个玩笑!)
先说个错误的方法,这个时候不能选择切换到master,然后merge,这样做会显示merge成功,但是代码却没有过来,
正确的出处理方法是把当前的的src打一个压缩包,然后在切换到master, 在将src压缩包还原即可,不过这样问题就是如果之前的master上未合并的代码那就回导致代码丢失
;
那么如何优雅的解决这个问题呢?
我们可以选择在当前分支创建分支,然后在切换到master上,进行merge,最后在手动创建的分支即可!
至于头指针修改的就不用管了git会自动回收,并且切换到master以后在运行git branch也是看不到那个分支存在的至于说为什么不要乱动,因为我们一个大神一顿操作,我疯了😖
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。