代码commit到了莫名的分支或者被分离的HEAD上了,如何处理

只需三部就可以把你不知道提交到了哪的代码,再移动到选定分支上;

这种情况的出现原因:
1: 有可能是确实提交到了某条分支上,但是提交之后发现分支错了,找不到那次提交了;
2: 有可能是未检出分支或者未切换分支,直接在分离的HEAD上进行开发了, 这时你commit后的代码实际是属于游离状态的,不属于任何分支,但是你的电脑本地是存在提交记录的;这就是找回代码的依据;

第一步:
终端:git reflog
(查看所有分支的所有操作记录(包括commit和reset的操作,包括已经被删除的commit记录,git log则不能察看已经删除了的commit记录)

找到你丢失的那次commit记录,记下commit id (就是前面的一串字母加数字)

第二步:
git checkout <你想提交到的分支上>
例如:git checkout master
(查看远端的全部分支: git branch -a (列出全部的分支名))

第三步:
git cherry-pick <commit id> 例如:git cherry-pick hbd37gf76sg
(<commit id>就是在第一步里记录的commit id) 选出这次记录重新提交到当前分支上

(此时,如果使用了SourceTree,就可以在该分支的提交记录上看到了此次提交), 然后再正常的pull + push 就OK了

文献参考:
git cherry-pick简介
git checkout简介
git 本地提交未Push 自动切到其他版本的解决姿势

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • git常用命令 GIT常用命令备忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章阅读 8,611评论 1 26
  • ——谨以此献给我的高中岁月和即将高考的你们 室友A当学姐心切,发誓下学期请第一个喊她“学姐”的人喝奶茶。室友B立马...
    因蓝阅读 447评论 1 5
  • 抬头一弯月,蛙鸣四五声。 灯下疾奋书,雨夜愈深沉。
    乙知己阅读 232评论 1 2
  • 喂,嗯是我,你怎么打电话来了……” 十几分钟的通话时间,过程还算融洽,但试了那么多次的对不起还是没说出口,很多想说...
    二肆阅读 196评论 0 0
  • 每个人成长的二三十岁会花很多时间去学习。唯独我们忘记了学习怎样去记忆,怎样去提高记忆力提高学习的效率,假如我们发几...
    努力学习的清梅阅读 860评论 0 3