本地git分支被誤刪,如何找到該分支的提交記錄和代碼?

題目本來是這樣的:如果一個實習生,他本地git的xxx分支被誤刪了, xxx分支代碼沒有被push到遠程,如何找到之前xxx分支的提交記錄和代碼?


看着這題目有點意思,就順手操作了一下,一頓操作猛如虎……

  1. 首先clone一份Git倉庫代碼下來,直接上我的gitdemo倉庫地址:https://github.com/2oops/gitdemo.git

  2. clone下來之後,做下修改,然後addcommit到本地,如下圖

  3. 注意上面是在xxx分支做的操作,現在git branch -a查看下分支,然後git checkout master切換分支(注:如果沒有commit就去切換分支是會報錯的,而且切換不了),切換完之後,我們強制刪除這個xxx分支(可以試試git branch -d xxx-d刪不動),如圖



    4.刪除分支後,本地的更改的代碼是沒有了的,現在我們使用git log -g查看提交記錄 (注意和git log -a的區別)

  4. 現在我們可以拿到xxx分支提交代碼到本地的那條記錄的hash值(暫且稱之爲A),然後執行git branch recover-xxx A(注意這裏recover-xxx是本地新建分支的名字,不是已刪除的xxx分支,而且建議不要使用之前的分支名)


    到這裏我們可以看到之前xxx分支修改的代碼已經找回來了。


總結一下:
1. 查看記錄: git log -a
2. 找到提交的hash值A, git branch new-branch A

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章