因为没有养成随手提交代码的习惯 ,丢失了两天的代码。本想提交一个实体类文件到远程。开始不知道是版本问题,一直push不上,然后一顿骚操作,不小心跑到了最初pull下来的文件,然后我又回到了最后一次commit版本,从而导致来了detached HEAD,‘流离’状态。然后各种百度谷歌,看到一个比较适合我这个问题的解释detached head是一种HEAD指针指向了某一个具体的 commit id,而不是分支的情况, git checkout < commit id>,即切换到指定的某一次提交,HEAD 就会处于 detached 状态(游离状态)。
我使用git status 命令 告诉我HEAD detached at 32adec8 ,32adec8 应该就是commit id 了,
看到一个解决方法
1基于本次提交创建一个临时分支.
2然后merge到我当前工作分支.
3删除临时分支
我尝试的是,
1查看所有分支 git branch,
2 切换到master 主分支 git checkout master
3,切换到原来的分支,
git告诉我当前位置比maser高出是个版本,此时流离状态已经不见了,我commit一下,可以了,此时HEAD没有了感叹号,回到了我当前本地版本。然后使用idea 进行pull下来远程代码,然后push上去,此刻,当前本地和远程保持了相同的版本。
以此纪念丢失两天的代码
网友评论