1
JLNR 2019-06-21 20:00:21 +08:00
可以恢复,reflog 找回你的校验和,checkout 到该提交就可以了。删除的只是一个 label 而已,实际上提交还在
|
2
coolair OP @JLNR 是在本地还有记录还可以恢复吗?如果我在电脑 A 创建了分支,然后推到了 remote 服务器,接着又删了本地和远程的分支,并且在本地把这个代码库都删除了。那么如果在电脑 B pull 了最新的代码,已经没有那个分支了,是不是就没机会恢复了?
我看了下 reflog 只有 master 的记录。 |
7
msg7086 2019-06-21 22:18:40 +08:00 1
先什么都别管,把服务器上整个目录打包一个 tar 自己备份好。
这个 tar 里有你丢失的数据,至少保证其他操作不会影响到他。 然后下个 SmartGit,把 bare 仓库下载回来改名成.git 放在某个目录下,然后用 SmartGit 打开这个目录,切换到 Log 界面,左下角筛选器打开 Recyclable commits,右边应该会出现所有孤立提交记录。自己挨个点击看看,找到要恢复的提交,右键增加分支,起个名字,然后 Remote 菜单里把服务器地址加进来 Push 回去即可。 不知道还有没有别的 GUI 软件能看 reflog 的,反正我是一直用 SmartGit 的,用用也不要钱,你可以试试。 |
8
comwrg 2019-06-21 22:26:00 +08:00 via Android
git 有个特性就是你不想恢复都难
|
9
Arnie97 2019-06-22 00:22:23 +08:00 via Android
既然 A 已经删了,登录 remote 那台机器看 reflog 去恢复。此处 B 是没用的。
|