git detached
2024-09-20 02:58:14
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 -
# note the SHA- of latest commit
$ git checkout master
# reset your branch head to your previously detached commit
$ git reset --hard <commit-id>
或者,可以
git checkout <commit-id>
git checkout -b new_branch_name
然后合并分支。
Git的使用参考:http://www.cnblogs.com/trying/archive/2012/06/04/2863745.html
最新文章
- AngularJS作出简单聊天机器人
- js模版引擎handlebars.js实用教程——如何引入Handlebars.js
- ANSI是什么编码?
- CLI-error
- ffmpeg编码YUV420视频序列
- tomcat根据繁忙线程数对keepalive进行动态调整
- Solr配置集群
- C#中关于DateTime的最大值和最小值
- Vmware Briged方式使虚拟机上网
- 【Tomcat源码学习】-1.概述
- 《深入理解Java虚拟机》虚拟机类加载机制
- Markdown(editormd)语法解析成html
- DIV+CSS详解
- Vue-接口跨域请求调试proxyTable
- Go语言之unsafe包介绍及使用
- [数据]matplotlib总结
- soa---java 多线程的---锁
- 使用memcache处理缓存的三种方案
- 启动spark
- L1-007 念数字
热门文章
- springboot整合elasticsearch入门例子
- 视图控制器生命周期中各个重要的方法(Swift) (Important Methods during the Lifecycle of a View Controller)
- Jquery——动画效果
- Ant详解之-path、classpath和fileset
- 微信小程序 - 自定义swiper dots样式(非组件)
- 查看postgre都有哪些语句占用CPU,以及对应的sql语句
- Codeforces Round #310 (Div. 1) B. Case of Fugitive(set二分)
- 配置Git绑定Git@OSC
- SpringBoot2中配置文件的调整,升级SpringBoot2时候注意的坑
- Webwork【05】请求跳转前 xwork.xml 的读取