博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
git detached HEAD 修改后如何提交修改到其他分支
阅读量:4256 次
发布时间:2019-05-26

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

有次工作中git切换分支时,不小心前面加了origin/,但是像往常一样没有注意,直接在新分支上修改代码,等到要提交时给出的提示是git detached HEAD,还说切换分支之前请确保代码不会丢失,所以此时是可能造成修改的代码丢失的。

首先说下 detached Head 的意义,就是处于游离状态,就是处于一个没有分支名字的分支,指向切换分支时的最新提交,也可以只想其他任意提交。

处于detached 状态每次操作都会提示:

在这里插入图片描述

git detached HEAD 时给出的提示:

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

大致翻译:

第一段:你当前在detached HEAD 状态。你能查看代码,修改并提交代码,能丢弃任何操作都不会影响其他分支。
但此时就会有个大问题,如果是不小心切换到这种状态,所有的改动在没有名字的分支上,如何把这些保存提交到真正需要的分支上。
第二段:你可以通过创建一个新分支来接受这些修改,步骤首先提交commit,然后新建一个分支指向commitid,此时就具有了本地分支,然后可以把这个分支提交到远端,或者切换分支之后其他分支可以merge提交。
(1)提交commit修改 ,
(2)git branch newBranch commitId,
(3)git checkout 切换分支,
(4)执行merge命令(git merge newBranch)。

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

你可能感兴趣的文章
Messenger和aidl的关系&aidl支持多线程吗,messenger呢
查看>>
AndroidManifest.xml文件何时被加载?如何查看apk的AndroidManifest
查看>>
如何判断一个对象是否可回收,GC回收对象的过程方式,finilized函数
查看>>
java普通for循环和增强for循环中做集合增删会不会出错?
查看>>
抽象类和接口区别
查看>>
JVM学习之对象内存布局,对象头
查看>>
Python urllib模块访问网络
查看>>
JVM学习之java线程安全&锁优化技术
查看>>
兼容ProgressBar圆形设置颜色
查看>>
git detached HEAD 修改后如何提交修改到其他分支
查看>>
Android获取系统中的其他应用信息
查看>>
Android视频编解码之MediaCodec简单入门
查看>>
Android原始视频格式YUV,NV12,NV21,YV12,YU12(I420)
查看>>
View绘制01-Android渲染系统中的View
查看>>
View绘制02-View生命周期
查看>>
View绘制系列(3)-自定义View简介
查看>>
View绘制系列(5)-Canvas基础图形绘制
查看>>
Android横竖屏切换
查看>>
判断SD是否存在及其容量查询
查看>>
linux查看文本的5+1种方式
查看>>