git 删除分支如何恢复

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

一:问题描述:

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

二:恢复的操作过程:

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

如果commit的内容过多的话,我们可以进行过滤查找:
git log -g --author="[email protected]"   // 根据用户名过滤,模糊匹配
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

猜你喜欢

转载自www.cnblogs.com/quan-coder/p/9036608.html