git detached HEAD解决方案

  • detached HEAD 状态是指 HEAD 指针不指在任何分支的索引(比如 master、dev)。
  • 进入 detached HEAD 状态后 git 会创建一个临时分支。
  • 如果想退回直接 git checkout 想要的分支,最优雅没有之一。
  • 否则操作后,要 git add、git commit 然后 git checkout -b 新的分支,不然临时分支会被 git 删除。

    例子:

  • $ git branch -l                   <----- 当前是 master 分支
    * master       
    
    $ git log --oneline
    c222c53 add b
    49e519e add a
    
    $ git checkout 49e519e            <----- 分离 HEAD 和分支索引,处于 detached HEAD 状态
    Note: checking out '49e519e'.
    
    You are in 'detached HEAD' state. You can look around, make experimental
    changes and commit them, and you can discard any commits you make in this
    state without impacting any branches by performing another checkout.
    
    If you want to create a new branch to retain commits you create, you may
    do so (now or later) by using -b with the checkout command again. Example:
    
        git checkout -b new_branch_name  <--- git 提示要新建分支来记住 commit
    
    HEAD is now at 49e519e... add a
    
    ((detached from 49e519e)) $ git branch -l
    * (detached from 49e519e)          <--- git 创建的临时分支
    master 
    
    ((detached from 49e519e)) $ git checkout  -  <--- 简单的 checkout 回原来分支,这里是master
    Previous HEAD position was 49e519e... add a
    Switched to branch 'master'
    
    $ git branch -l
    * master                              <--- 临时分支不见了
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值