zoukankan      html  css  js  c++  java
  • Git HEAD detached from XXX 解决

    Git 中的 HEAD 可以理解为一个指针,我们可以在命令行中输入 cat .git/HEAD 查看当前 HEAD 指向哪儿,一般它指向当前工作目录所在分支的最新提交

    cat .git/HEAD
    ref: refs/heads/<branch name>  // 正常
    cad0be9ceb89f474c39360c4de337d4a8194cab0 // 游离状态
    

    使用git checkout 来移动HEAD指针,移动的对象可以是分支指针也可以是快照。
    HEAD指针可以指向快照也可以指向branch。当指向branch时提交后会和branch指针一起向后移动,当不指向branch提交时时则会在一个detached状态。

    当使用 git checkout < branch_name> 切换分支时,HEAD 会移动到指定分支。

    git checkout <branch name>
    

    但是如果使用的是 git checkout <commit id>,即切换到指定的某一次提交,HEAD 就会处于 detached 状态(游离状态)


     
    使用webStorm checkout
    git checkout <commit id>
    

    HEAD 游离状态的利与弊

    利: 我们可以很方便地在历史版本之间互相切换,比如需要回到某次提交,直接 checkout 对应的 commit id 或者 tag 名即可。

    弊:在这个基础上的提交会新开一个匿名分支且提交是无法可见保存的,一旦切到别的分支,游离状态以后的提交就不可追溯了。

    git branch
    * (HEAD detached at 925fda6)
    master
    
     
    在游离状态无法提交修改

    解决办法

    1,查看当前分支状态

    git branch
    * (HEAD detached at 925fda6)
    master
    

    2,新建一个临时 tem 分支,把当前提交的代码放到整个分支

    git branch tem //tem是新建分支的名字
    git checkout tem
    

    3,换回要回到的那个分支,这里是 master

    git checkout master
    

    4,然后 merge 刚才创建的临时分支

    git merge tem
    Updating cad0be9..2437c6b
    Fast-forward
    ......
    

    5,检查是否有冲突,没有就提交到远端

    git push origin master
    

    6,删除临时分支

    git branch -d tem


    作者:相忘于天涯
    链接:https://www.jianshu.com/p/fdd3c2d020d7
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

      

    # 新建分支

      git branch imagebranch(分支名)

      # 至本地项目路径,即.git所在路径,将本地仓库代码导入新分支

      # 注意,此处需要输入github用户名、密码

      git push origin imagebranch

      # 切换到该分支

      git checkout imagebranch

      # 校验本地修改

  • 相关阅读:
    June. 26th 2018, Week 26th. Tuesday
    June. 25th 2018, Week 26th. Monday
    June. 24th 2018, Week 26th. Sunday
    June. 23rd 2018, Week 25th. Saturday
    June. 22 2018, Week 25th. Friday
    June. 21 2018, Week 25th. Thursday
    June. 20 2018, Week 25th. Wednesday
    【2018.10.11 C与C++基础】C Preprocessor的功能及缺陷(草稿)
    June.19 2018, Week 25th Tuesday
    June 18. 2018, Week 25th. Monday
  • 原文地址:https://www.cnblogs.com/bigben0123/p/13753961.html
Copyright © 2011-2022 走看看