需求
實際工作上,肯定會有不小心的時候,刪除了本地dev分支,也不小心刪除了遠程分支
git reflog
reflog是reference log的意思,也就是引用log,記錄HEAD在各個分支上的移動軌跡。選項 --date=iso,表示以標准時間格式展示。這里你肯定會問,為什么不用git log?git log是用來記錄當前分支的commit log,分支都刪除了,找不到commit log了。
找到目標分支最后一次的commitid,
-
D:\>git reflog --date=iso
-
287ba1b HEAD@{2019-05-13 15:35:18 +0800}: checkout: moving from dev to deploy
-
528a169 HEAD@{2019-05-13 09:23:58 +0800}: commit: 添加忽略,.idea,*.iml,*.log
-
切出分支
git checkout -b recovery_branch_name commitid
切出分支后,本地有分支了,再push到遠程倉庫就可以了
git push origin recovery_branch_name
恢復分支后,個人感受,git還是很強大的!