Git版本恢复和出现*(branch)的处理

一、版本恢复

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操作

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值