准备要上线某功能,突然发现需要上线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,看看能不能还原回来
Git参考文档: https://git-scm.com/book/zh/v2