這是https://www.cnblogs.com/utank/p/7880441.html的方法,雖然很老現在有點不一樣,但總體還是能用的。
?
總結就是兩種方法
1.用commit的id恢復
2.用reflog的頭指針恢復
?
?
?刪除一個已被終止的分支
如果需要刪除的分支不是當前正在打開的分支,使用branch -d直接刪除
git branch -d <branch_name>
??刪除一個正打開的分支
如果我們在試圖刪除一個分支時自己還沒轉移到另外的分支上,Git就會給出一個警告,并拒絕該刪除操作。
如果堅持要刪除該分支的話,就需要在命令中使用-D選項。
git branch -D <branch_name>
??恢復被刪除的分支
Git會自行負責分支的管理,所以當我們刪除一個分支時,Git只是刪除了指向相關提交的指針,但該提交對象依然會留在版本庫中。
因此,如果我們知道刪除分支時的散列值,就可以將某個刪除的分支恢復過來。在已知提交的散列值的情況下恢復某個分支:
git branch <branch_name> <hash_val>
如果我們不知道想要恢復的分支的散列值,可以用reflog命令將它找出來。如:
reflog命令:
顯示整個本地倉儲的commit,包括所有branch的commit,甚至包括已經撤銷的commit。
只要HEAD發生了變化, 就會在reflog里面看得到。
?
這時恢復分支a_branch分支如下:
git branch <branch_name> HEAD@{4}