当前位置:   article > 正文

Git版本恢复和出现*(branch)的处理_git没有往主干上提交代码,主干上会出现带*的提交记录

git没有往主干上提交代码,主干上会出现带*的提交记录

一、版本恢复

1.1 回退指定步数

        git reset --hard HEAD^

        回退一步,即回退到上一次提交," ^ "的数量代表回退的步数;

1.2 回退到指定commit id

        git reset <commit id>

        回退到指定commit id的一次提交

1.3 恢复丢失的版本

        背景:需要把丢弃的版本恢复回来,但是已经没有任何分支能够reference到这个commit了;

        分析:git 对各个分支的head还有一份log记录叫做reflog,你可以在.git/logs/refs/heads/ 目录下看到它们。 通过 git reflog 可以显示变更历史。使用类似 master@{1} master@{“2 days ago”}之类的格式,就能索引到你想要的commit

        示例:git reset <commit id>【注意:reflog中的commit id只记录了id的前7位字符】

        (1)git reflog        查看reflog上记录的commit log;

        (2)git reset <commit id>        回退到指定commit id

二、出现 *(no branch) 的处理

        背景:在(no branch)分支上提交(push)了,然后不小心从(no branch)branch切换到其他分支了,用git log查找不到(no branch)的提交信息了;

        (1)git reflog        查看所有提交记录,查找(no branch)分支上的commit

        (2)git checkout -b backup <commit id>        回退指定提交记录;

        若代码已经push到远程仓了,可以在Gerrit上通过 "rebase" 操作将该提交rebase到正确的分支上;

        若该代码已经Abandoned了,可以先通过 "Restored" 操作将该提交记录恢复到远程仓,再进行rebase操作

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/333887
推荐阅读
相关标签
  

闽ICP备14008679号