HEAD detached at head的处理

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

今天使用git的时候在终端发现这样一条信息
HEAD detached at head

分析

心里一惊,艾玛这是什么状态?
其实我们知道,git checkout本质上是修改HEAD里面的内容来让它指向不同分支的,而HEAD文件指向的分支就是我们当前的分支,但是有时候HEAD不会指向任何分支,严谨的说是HEAD指向了一个没有分支名字的修订版本,此时恭喜你,已经处于游离状态了(detached HEAD).这时候我们在进行commit操作不会提交到任何分支上去.

这个时候输入git status查看当前状态发现我没有在任何本地分支上也验证了刚才的猜想,而这时候我又作死的进行了commit操作,git提示我

Warning: you are leaving 1 commit behind, not connected to
any of your branches:

  fef4501 interrationRecord page completed

If you want to keep them by creating a new branch, this may be a good time
to do so with:

 git branch <new-branch-name> fef4501

然后我欢天喜地的git checkout ask_11_16切换到工作分支以为万事大吉,艾玛坑爹啊,我特么辛辛苦苦写了一天的代码呢?不过这时候我们回看上面那段提示,智能的git告诉我如果我还想要这次提交的话,可以创建一个新的分支,同时把本次提交的id告诉了我:fef4501.
那么这时候我已经有了一个思路:

  1. 基于本次提交创建一个临时分支.
  2. 然后merge到我当前工作分支.
  3. 删除临时分支

实操

基于本次提交创建临时分支

输入
$git branch temp fef4501
使用git branch 分支名 操作ID 这句命令能够创建一个新的分支,但要注意此时我们还没有切换到这个分支上,这个分支上面代码跟我刚才提交完之后的一样.

切换到工作分支并合并代码

输入
$git checkout ask_11_16
意味着我已经切换到ask_11_16分支,这个分支是我之前想要提交的分支.
然后
$git merge temp
这行命令过后我们已经上次commit合并到ask_11_16上了,此时终端状态为
Your branch is ahead of 'origin/ask_11_16' by 1 commit.
我们只需要$git push即可把本次提交push到远程分支.
这时候检查代码,perfect!正式我们想要的状态.

删除temp分支

大功告成,至于temp分支已经没有了利用价值,本着过河拆桥的精神我不得不输入
$git branch -d temp
来删除temp分支.

git是一个很优秀的版本控制工具,利用得当能让我们在团队协作时候如鱼得水,但是万一有操作失误,也会让很多不熟悉git命令的人各种发愁,下面贴一个git命令大全,非常实用


9.jpg
如何用 Gerrit 提交代码到服务器 「Gerrit」是一个开源代码审查软件,最开始是用于管理「Android安卓」项目而产生的,所以做安卓开发的同仁应该知道这个工具。 提交代码流程 用法和「Git」类似,如果对Git还不熟悉的话,可以公众号「叉叉敌」回复「git」,可以获得 stormzhang 整理的一份GIT经典资料。 首先本地安装GIT 既然是GIT的,首先是安装,直接在Git-Scm官网下载对应的版本即可。 查询代码状态... 阅读详情

相关推荐

Spring Boot 3实战:5分钟用@HttpExchange搞定声明式HTTP客户端,告别OpenFeign

本文详细介绍了如何在Spring Boot 3中使用`@HttpExchange`注解快速构建声明式HTTP客户端,替代传统的OpenFeign方案。通过实战示例展示了接口定义、高级配置、异常处理等核心功能,帮助开发者提升RESTful服务调用效率,同时对比了与OpenFeign的主要差异和迁移策略。

weixin_30552811的博客 1623

HEAD detached at ---

git checkout 到 某个分支,切换后发现并没有切换到该分支,而是切到了该分支的最新节点,无论如何都回不到分支头,记录这个问题。 命令: git checkout origin/分支名 结果: HEAD is now at 3691a4a5f 节点信息 (HEAD detached at origin/分支名) 解析: 1 detached HEAD state指的是什么 正常情况...

本然233的博客 4万+

git分离头指针(detached HEAD)状态处理

确保你在进行分支操作之前提交或者保存你的更改。如果你已经在分离状态下进行了一些工作,你可以创建一个新的分支,并将这个分支合并到你想要的分支上,以确保你的更改得以保留。注:在 repo 和多仓库项目中,确保你在执行同步操作时,是在一个已经存在的分支上。如果你在一个新的仓库上工作,你可能需要首先创建并切换到一个分支。当我们的工程处于分离头指针(detached HEAD)状态时,就会出现这样的现象。今天用repo同步了一个工程,但状态很奇怪,用。如果你想要在一个分支上工作,你可以使用。命令来切换到一个分支。

AllenEcho的专栏 2521

* (HEAD detached at origin/xxx)原因及解决方案

* (HEAD detached at origin/xxx)的原因及解决方案

小仙女的博客 8549

Git error: head is detached at e34520(hash value),git push失败一直有unstage东西的处理

问题 git add,commit都很顺利,但是远程仓提交git push,因为一个文件超出10M被reject;撤销git reset --soft HEAD^等等措施都没法搞定; 再次push,还会出现那个10M的文件; 方法 https://www.git-tower.com/learn/git/faq/detached-head-when-checkout-commit/ 上面一个链接里面最终找到了解决方法 原因是push的东西,那个文件所在的stage需要存放; 新建一个branch,存下来,然后

PerfeyCui的博客 379

【git 基础】detached HEAD state的出现和解决

摘要:文章解释了Git中的HEAD分离状态问题。HEAD通常指向当前分支的最新提交,当直接指向某个具体提交而非分支时,就处于"分离头指针"状态。这通常发生在检出历史版本或标签时。问题在于,这些提交可能因缺少分支引用而被Git垃圾回收机制清除。解决方法是在分离状态下创建新分支(git checkout -b 或 git branch)或标签来保留这些提交。若已丢失,可使用git reflog查找并恢复。全文约150字。

山云的专栏 1414

detached HEAD切换分支代码丢失

今天在切换git分支的时候,代码丢失,找了半天,恢复不了,瞬间慌了,还好我提交过,首先要知道,所有提交过的代码,都是可以被找回的。 但是git log并没有我的提交记录,我更慌了。下面把踩的坑总结下来 先来说说,从detached HEAD分支切换到其他分支,导致代码丢失的解决办法。每个人造成这种问题的原因,可能不尽相同,但是解决办法确实通用的 解决办法: 1、执行git reflog可以看到提交记录 2、git checkout 0f3341b 3、git checkout -b temp 创建temp

张木期的博客 1376

解决git在detached HEAD状态下提交找不到的两个方法

刚刚帮同事解决了一个关于git head detached的问题,记录一下。 在切换分支的时候,git checkout 使用的参数是origin/分支名,而不是分支名,导致HEAD处于游离状态。 testUser@computer MINGW64 /d/Program Files (x86)/project/GitTest/local/origin (master) $ git branch -...

u012953143的博客 4840

如何解决git HEAD detached 分离头指针问题

Git分离头指针问题解决实践 在项目移植到Gitee过程中遇到"srcrefspecmaindoesnotmatchan"错误,原因是代码仓库处于分离头指针状态(HEAD指向具体提交而非分支)。本文记录了解决过程: 问题分析:分离头指针状态导致无法直接push代码 解决方案: 备份项目文件(打包核心代码) 使用git status --porcelain分析文件状态 清理不需要的临时文件(如.idea/、__pycache__等) 创建新分支保存分离状态下的修改 切换回master分支并

山云的专栏 1164

git push | detached HEAD 处理与解决

你现在的master分支已经绑定了远程的。以后你直接使用git push和git pull即可,不需要额外指定远程分支。(这能让你看清楚本地与远程的差异)

weixin_42479421的博客 1352

【git 基础】detached HEAD意义详解 (非顶端分支的理解)

概述:在使用git的过程中,我们常常会对其中的HEAD感到疑惑:HEAD是什么意思?表示当前分支吗?什么是处于游离态的commit点?等等,这些都和一个叫做detached head的状态有关,我们来看看它的真面目。 通常情况下,HEAD指向一个分支;同时,每一个分支对应一个特定的commit(确切的说,一个分支上可以有多个commit,但是只有一个顶层commit,而且commit之间是简单的线性关系)。我们来看下面这个包含三个commit的例子,其中目前在master分支上。...

山云的专栏 1750

git的HEAD DETACHED解决

今天使用git的时候在终端发现这样一条信息 HEAD detached at head 分析 心里一惊,艾玛这是什么状态? 其实我们知道,git checkout本质上是修改HEAD里面的内容来让它指向不同分支的,而HEAD文件指向的分支就是我们当前的分支,但是有时候HEAD不会指向任何分支,严谨的说是HEAD指向了一个没有分支名字的修订版本,此时恭喜你,已经处于游离状态了(det

qq_27292549的博客 6263

当使用完git checkout origin/xxx 或者git branch这个命令后出现‘HEAD detached at origin/xxx’d的解决方案

今天切完分支之后执行git branch的时候遇到一个问题:HEAD detached at origin/asd

qq_45953036的博客 6440

detached HEAD的原因及解决

项目场景: springboot+git 问题描述: 由于部分原因本地代码进行了历史节点还原操作,之后又进行了复原,编写代码进行提交,分支显示 detached HEAD 解决方案: 重命名当前分支:git branch new_branch idea操作: ...

lierjun 的专栏 991

detached HEAD意义详解

概述:在使用git的过程中,我们常常会对其中的HEAD感到疑惑:HEAD是什么意思?表示当前分支吗?什么是处于游离态的commit点?等等,这些都和一个叫做detached head的状态有关,我们来看看它的真面目。              通常情况下,HEAD指向一个分支;同时,每一个分支对应一个特定的commit(确切的说,一个分支上可以有多个commit,但是只有一个顶层commit,

河西无名式 1万+

9:【Git新手】detached HEAD是什么 & 怎么安全退出/转分支

2026年,Git的detached HEAD状态仍然是新手开发者最常遇到的困惑之一。本文详细解释detached HEAD的概念、产生原因和解决方案,提供3分钟安全退出和转换分支的步骤,帮助开发者避免代码丢失和分支混乱,同时掌握Git的高级分支管理技巧。

欢迎来到智能安全前线!这里是AI与信息安全交汇之地。我们以代码为武器,深入大模型攻防实战,破解系统漏洞。追踪OpenAI、Meta前沿动态,用红蓝对抗思维,锻造智能时代的坚盾与利矛。 678

Git 提交 HEAD detached from xxx

Git 提交 HEAD detached from xxx 在远程提交代码到git时,git push后无法提交,显示 HEAD detached from [分支名]该提示说明head是游离状态游离状态提交会新开一个匿名分支且提交是无法可见保存的,一旦切到别的分支,游离状态以后的提交就不可追溯 3 切换到临时分支 4 提交代码 git add . 6 合并临时分支 7 推送提交 8 最后删除临时分支...

hey_lie的博客 862

git提交的时候出现:DETACHED HEAD

摘要:Git中DETACHED HEAD状态表示直接指向某个提交而非分支,常见于查看历史版本或特定commit时。解决方法包括:创建新分支保存更改(git checkout -b)、切换回原有分支丢弃更改,或通过stash将更改应用到其他分支。需注意未保存的提交可能被Git垃圾回收,重要更改应及时创建分支保留。(150字)

shahai7的博客 385
上一篇: Linux 常见目录作用
下一篇: java中两个byte数组如何合并?
一往无前-千夜
博客等级 码龄9年 357粉丝 365原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值