美文网首页Git
代码commit到了莫名的分支或者被分离的HEAD上了,如何处理

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

作者: SepJG | 来源:发表于2017-05-02 16:13 被阅读0次

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

    这种情况的出现原因:
    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 自动切到其他版本的解决姿势

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/wloctxtx.html