搜尋

首頁  >  問答  >  主體

git reset --hard 回滾以後 以後怎麼再回去?

git reset --hard 回滾到之前的版本以後,要怎麼撤銷這一步回滾操作?

PHP中文网PHP中文网2792 天前899

全部回覆(2)我來回復

  • 漂亮男人

    漂亮男人2017-05-02 09:22:55

    可以透過reflog來恢復,前提是遺失的分支或commit資訊沒有被git gc清除

    一般情況下,gc對那些無用的object會保留很久後才清除的

    可以使用git reflog show或git log -g指令來看到所有的操作日誌

    恢復的過程很簡單:

    1. 透過git log -g指令來找到需要恢復的資訊對應的commitid,可以透過提交的時間和日期來辨別,找到執行reset --hard之前的那個commit對應的commitid

    2. 透過git branch recover_branch commitid 建立一個新的分支

    這樣,就把到commitid為止的程式碼、各種提交記錄等資訊都恢復到了recover_branch分支上了。

    回覆
    0
  • 天蓬老师

    天蓬老师2017-05-02 09:22:55

    git stash save
    git reflog 
    git checkout
    git branch 
    

    stash你現在的髒內容。用reflog找到你要回去的commit,checkout過去然後建個分支跟原來分支merge。

    回覆
    0
  • 取消回覆