So easy:git head detached 的解决

     (望结交天下才士 ,Contact:UVEgMTkwNDUyOTQzOA==)

     head detach可以理解为无头的苍蝇,即当前不属于任何分枝,

     我们知道,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.

    那么这时候我已经有了一个思路:

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

    然后merge到我当前工作分支.

    删除临时分支

    实操:

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

    输入

    $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分支.

转载于:https://www.cnblogs.com/lv-xing-de-mu-ne/p/7307001.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值