git报错: HEAD detached from origin/master
bug
push
时出现问题:git status: HEAD detached from origin/master
原因:分支选错了,后续的提交都提交到了一个匿名分支之上,整个状态是游离了的
如图, 此时处于一个匿名分支, 此前在 vs code 进行commit->push时, 分支关系没有理清
迷思:什么是 HEAD
Git 中的 HEAD 可以理解为一个指针,我们可以在命令行中输入 cat .git/HEAD
查看当前 HEAD 指向哪儿,一般它指向当前工作目录所在分支的最新提交
图中head指向main
使用git checkout [argument]
可以切换到某个分支, argument此时为branch的名字, 也可以切换到某次commit
当使用
git checkout < branch_name>
切换分支时,HEAD 会移动到指定分支但是如果使用的是
git checkout < commit id>
,即切换到指定的某一次提交,HEAD 就会处于 detached 状态(游离状态)!!!
问题的本质为切换head后没有指定到底应该继续原分支还是继续新分支
这样会导致git 在这个基础上提交新开的一个匿名分支!
进入了一个新的匿名分支
我们的提交是无法可见保存的,一旦切到别的分支,游离状态以后的提交就不可追溯了,因而触发git的保护机制, 出现问题,无法切换分支
解决方法:
- 查看在游离状态下提交的最新commit号
git branch -v
- 创建一个临时的分支,用来保存此匿名分支下的内容
git branch temp
新建一个名字叫temp的分支,用这个分支会自动存有匿名分支的内容
切换到刚刚创建的temp分支, 此时发现,匿名分支消失
git checkout temp
temp 为刚刚创建的分支
再查看分支情况
匿名分支消失!!
若要保留此次更改, 则而后切换到main分支
git merge temp
即可将改动merge到本地main分支git branch -D temp
删除临时分支
此处不再赘述.
git报错: HEAD detached from origin/master相关推荐
- 解决git报错[remote rejected] HEAD -> master (pre-receive hook declined) error: failed to push some...
git push 报错 ...[remote rejected] HEAD -> master (pre-receive hook declined) error: failed to push ...
- git报错:‘fatal:remote origin already exists‘怎么处理?附上git常用操作以及说明。
git添加远程库的时候有可能出现如下的错误, 怎么解决? 只要两步: 1.先删除 $ git remote rm origin 2.再次执行添加就可以了. ---------------------- ...
- git报错:fatal: remote origin already exists
解决方法: git remote rm origin git remote add origin git@github.com:(github名)/(git项目名).git 参考博客:https:// ...
- HEAD detached from origin/master
git 提交出现HEAD detached from origin/master问题的解决 问题:执行git status,提示: HEAD detached from origin/master 原 ...
- GIT 报错:Branch ‘master‘ set up to track remote branch ‘master‘ from ‘origin‘
GIT 报错:Branch 'master' set up to track remote branch 'master' from 'origin' git上传仓库时报错 解决方法共两步 1.移除 ...
- Idea提交代码报错:Push rejected: Push master to origin/master was rejected by remote
问题描述 Idea提交代码报错:Push rejected: Push master to origin/master was rejected by remote 问题分析 网上找了一些帖子,但是对 ...
- git报错:‘origin’does not appear to be a git repository
git报错:'origin'does not appear to be a git repository 原因 具体解决方法 原因 是由于git找不到远端的仓库地址了,在git文件夹下,config文 ...
- git:Git fetch和git pull的区别, 解决Git报错:error: You have not concluded your merge (MERGE_HEAD exists)....
Git fetch和git pull的区别, 解决Git报错:error: You have not concluded your merge (MERGE_HEAD exists). 解决办法一:保 ...
- 解决Git报错:error: You have not concluded your merge (MERGE_HEAD exists).
Git 解决Git报错:error: You have not concluded your merge (MERGE_HEAD exists). 开发新业务,拉取代码时,路由文件发生冲突,解决此文件 ...
最新文章
- 电子计算机的发展与应用教案,川教版信息技术七上第3课《电子计算机的发展与应用》教案1.doc...
- [转]微软发布WF教程及大量示例
- atCoder Ants on a Circle(又是蚂蚁问题。。。)
- php 区块链算法_PoW/BFT等5种主流区块链共识算法的开源代码实现
- 理解 python 装饰器
- Python ATM实战
- C语言之文件读写探究(四):fwrite、fread(一次读写一块数据(二进制操作))
- WebLogic下载地址 各版本
- linux ftp上传命令实例,ftp上传文件命令,Linux中使用ftp命令上传文件
- 《东周列国志》第十一回 宋庄公贪赂构兵 郑祭足杀婿逐主
- Chrome 科研神器!去谷歌学术搜到文章,代码链接就能自动展示
- vba操作ie关闭窗口
- Python 基础 函数的使用——参数
- C++Primer 第8章IO流
- Python创建文件夹和子文件夹
- 把ipa包上传入AppStore
- laravel+容联.云通讯 实现手机短信验证用户注册
- PhpStorm 配置 Xdebug调试工具
- 阿里云模板建站好处(模板建站+定制建站)优惠购买指导
- ros操作命令与实操-话题发布