git 头指针分离

machinist
遇到不会解决的问题,最好不要乱动以免给自己解决错误路上徒增成本!

昨天着急下班,眼看就要6点了,有事在身本想脚底抹油,溜之大吉的,就在我git push 的时候命令给我之前没就见过的bug,如下:
image.png
左下角显示的本来应该是红字高亮后面的指向(当时着急跑路没截图尴尬);
当时是可以 add 并且commit的 但是就是push不上去;

  1. 什么是头指针分离?

    所谓的分离头指针状态就是HEAD不再指向分支,而是直接指向某个commit;

  2. 造成这样的原因是什么?
    如果执行 git checkout commitId就会导致HEAD指向该次提交,而不在指向分支,然后提示头指针分离, 之后你进行的所有的操作都是正常进行的,但是不在任何分支上!如果此时切换回master分支,你会发现刚刚在分离头指针状态下对文件做了修改提交在master分支下是看不到的,并且由于c3这次提交不在任何分支上,在未来极有可能会被Git清理掉。
  3. 遇到头指针分离应该怎么处理
    首先,遇到事情不要慌,拿出手机发个朋友圈,来杯咖啡等待大神帮忙,或者自行百度均可!(开开个玩笑!)
    先说个错误的方法,这个时候不能选择切换到master,然后merge,这样做会显示merge成功,但是代码却没有过来,
    正确的出处理方法是把当前的的src打一个压缩包,然后在切换到master, 在将src压缩包还原即可,不过这样问题就是如果之前的master上未合并的代码那就回导致代码丢失
    那么如何优雅的解决这个问题呢?
    我们可以选择在当前分支创建分支,然后在切换到master上,进行merge,最后在手动创建的分支即可!
    image.png
    至于头指针修改的就不用管了git会自动回收,并且切换到master以后在运行git branch也是看不到那个分支存在的

    至于说为什么不要乱动,因为我们一个大神一顿操作,我疯了😖

阅读 932

前端手札
零零散散的前端知识点!聚拢成一片,坚持自己的分享之路,一起来监督吧!

JavaScript、 react、 echarts、 umi使用者

451 声望
26 粉丝
0 条评论

JavaScript、 react、 echarts、 umi使用者

451 声望
26 粉丝
文章目录
宣传栏