博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
git detached
阅读量:5827 次
发布时间:2019-06-18

本文共 842 字,大约阅读时间需要 2 分钟。

git提交的时候,本地已经提交,却怎么也推送不到服务器,也没显示错误,只显示 everything-up-to-date ;

原因是git不在master分支,而是处于detached head(匿名分支提交)状态,即git Head指向了其中一个提交,而不是master分支,所以,在detached HEAD里面做的任何操作,例如提交操作,都可以正常进行,但是不会更新任何已命名的分支。(你可以认为这是在更新一个匿名分支。)

一旦此后切换到别的分支,比如说master,那么这个提交节点(可能!!!如果使用了git gc,那就没了:-( )再也不会被引用到,然后就会被丢弃掉了。

如果要保存这个匿名分支,可以把它新建为一个新的分支,使用

git checkout -b new_branch_name

其实,使用git checkout的好处多多 , 如果既没有指定文件名,也没有指定分支名,而是一个标签、远程分支、SHA-1值或者是像master~3类似的东西,就得到一个匿名分支,称作detached HEAD(被分离的HEAD标识)。这样可以很方便地在历史版本之间互相切换。比如说你想要编译1.6.6.1版本的git,你可以运行git checkout v1.6.6.1(这是一个标签,而非分支名),编译,安装,然后切换回另一个分支,比如说git checkout master。

 

上面的问题可以这样解决:

$ git log -1# note the SHA-1 of latest commit$ git checkout master# reset your branch head to your previously detached commit$ git reset --hard 

 或者,可以

git checkout 
git checkout -b new_branch_name

然后合并分支。

Git的使用参考:

 

 

转载地址:http://yzodx.baihongyu.com/

你可能感兴趣的文章
构建高可用ZooKeeper集群
查看>>
rabbitmq之fanout交换器以及rabbitmq java发布订阅 消息实现
查看>>
解决windows的控制台和shell比较KUSO的问题(ConEmu&&Pycmd)
查看>>
跨屏框架的一些感受
查看>>
我的友情链接
查看>>
二:Ubuntu下Hadoop的安装与部署
查看>>
Kettle8.1.0.0-365插件开发调试
查看>>
Getting Started with AngularJS 1.5 and ES6: part4
查看>>
抽象类abstract的使用
查看>>
springBoot(10):web开发-文件上传
查看>>
使用 TListView 控件(4)
查看>>
数据包接收系列 — NAPI的原理和实现
查看>>
Oracle 笔记之子查询
查看>>
http内容协商
查看>>
最新《微软C#5.0语言程序设计与OO编程》免费视频课程
查看>>
阿里-蚂蚁金服三轮面试总结
查看>>
JavaSE总结篇
查看>>
修改Linux 控制台终端个数
查看>>
深入理解Java虚拟机:OutOfMemory实战
查看>>
linux守护进程的几个关键地方
查看>>