zoukankan      html  css  js  c++  java
  • git 删除分支如何恢复

    强制删除了一个分支而后又想重新使用这个分支,该怎么找回该分支上的代码呢?

    一:问题描述:

    今天师父说上线几个功能,让我把开发的分支推送到远程。当打开git就傻眼了,之前开发好的分支被我删除了,就连推送到远程的分支竟然都被删除了。

    二:恢复的操作过程:

    1. git log -g :显示已经commit信息

    如果commit的内容过多的话,我们可以进行过滤查找:
    git log -g --author="xx@qq.com"   // 根据用户名过滤,模糊匹配
    git log -g --grep "xx"  // 根据commit时候的提交信息查找,模糊匹配

    2. 根据commit信息,找到对应的commitId

    3. git branch new_branch  commitId,用这个commit创建一个新的分支

    这样,该新的分支,就保留了commitId对应的修改,我们可以使用git log 命令来查看是否正确

    补充:

    在执行第二步的时候,如果不行,可以执行:git fsck --full(文件系统检测),该命令显示所有未被其他对象引用 (指向) 的所有对象,查看改命令列举出的commit中有没有自己想要的commitId
    
    git fsck 相对reflog是有优势的。比方说你删除一个远程的分支然后关闭仓库。 用fsck 你可以搜索和恢复已删除的远程分支

    三:编辑器的Local History

     如果是在不行,尝试在编辑器的历史记录中,找到local history,看看能不能还原回来

     git乃神奇,这次见识到了它的强大。

    参考:

    https://git-scm.com/book/zh/v1/Git-%E5%86%85%E9%83%A8%E5%8E%9F%E7%90%86-%E7%BB%B4%E6%8A%A4%E5%8F%8A%E6%95%B0%E6%8D%AE%E6%81%A2%E5%A4%8D

  • 相关阅读:
    redis的发布与订阅机制
    三次握手与四次挥手详解
    super的实例及实现原理
    【node.js】入门篇
    简单理解什么是数据库CDC?(以mysql为例)
    Java小工具类(一)json的K-V转换为Java类属性
    linux系统文件拷贝命令rsync
    linux系统配置常用命令top
    关于ganymed-ssh2版本262和build210的SCPClient类的区别
    阿里巴巴java-数据库开发手册(2020泰山版)
  • 原文地址:https://www.cnblogs.com/quan-coder/p/9036608.html
Copyright © 2011-2022 走看看