git 刪除分支如何恢復


 

強制刪除了一個分支而后又想重新使用這個分支,該怎么找回該分支上的代碼呢?

 

一:問題描述:

今天師父說上線幾個功能,讓我把開發的分支推送到遠程。當打開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

 如果是在不行,嘗試在編輯器的歷史記錄中,找到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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM