git报错: HEAD detached from origin/master

bug

push时出现问题:git status: HEAD detached from origin/master

原因:分支选错了,后续的提交都提交到了一个匿名分支之上,整个状态是游离了的

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yYc9ZXTH-1653662752425)(D:\photo\photolibrary\image-20220527170846435.png)]

如图, 此时处于一个匿名分支, 此前在 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的保护机制, 出现问题,无法切换分支

解决方法:

  1. 查看在游离状态下提交的最新commit号
git branch -v
  1. 创建一个临时的分支,用来保存此匿名分支下的内容
git branch temp

新建一个名字叫temp的分支,用这个分支会自动存有匿名分支的内容

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OrtEmrA2-1653662752427)(D:\photo\photolibrary\image-20220527171810292.png)]

  1. 切换到刚刚创建的temp分支, 此时发现,匿名分支消失

    git checkout temp
    

    temp 为刚刚创建的分支

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ax6wuz4t-1653662752428)(D:\photo\photolibrary\image-20220527172451830.png)]

    再查看分支情况

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w4ItIOkx-1653662752429)(D:\photo\photolibrary\image-20220527172513504.png)]

    匿名分支消失!!

若要保留此次更改, 则而后切换到main分支

  • git merge temp即可将改动merge到本地main分支
  • git branch -D temp删除临时分支

此处不再赘述.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
IDEA git报错"Push to origin/master was rejected"是因为在将项目上传到已存在文件的GitHub仓库时出现的错误。为了解决这个问题,你可以按照以下步骤进行操作: 1. 首先,在项目根文件夹中右击,选择"Git Bash Here"打开Git命令行工具。 2. 在Git命令行中,输入以下指令来解决报错git pull origin master --allow-unrelated-histories 这个指令会将远程仓库(GitHub)的最新代码合并到本地代码中,解决代码冲突。 3. 接下来,输入以下指令来将本地代码强制推送到远程仓库: git push -u origin master -f 这个指令会强制推送本地代码到GitHub仓库,并更新远程仓库的代码。 通过以上步骤,你应该能够成功解决IDEA git报错"Push to origin/master was rejected"的问题。这样你就能够将项目上传到已存在文件的GitHub仓库了。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [IDEA用Git提交代码失败:Push rejected /Push to origin/master was rejected](https://blog.csdn.net/dontYouWorry/article/details/129159889)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [idea上传代码到github时遇到的Push rejected: Push to origin/master was rejected](https://download.csdn.net/download/weixin_38576229/14045661)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值