Git reset 之後 怎麼恢復到 reset 之前的節點

  • 首先定位到 工程目錄\ .git\logs\refs\heads

  • 這裏會顯示本地對應的分支名字(masterdev 等等)

  • 然後找到你執行 reset 操作的分支名字, 比如 master.

  • 用 notepad++ 或者其他編輯器打開這個文件,內容結構如下:

    0000000000000000000000000000000000000000 9e6a4411ffa8b857680d923916ae329795a27e39 username email 時間戳 時區 branch: Created from HEAD
    9e6a4411ffa8b857680d923916ae329795a27e39 55b979d82534fa10c165a242a3d84ae1da54ab0b username email 時間戳 時區 commit: opt
    55b979d82534fa10c165a242a3d84ae1da54ab0b c67cf7c3f40324a969d3162b51c8413e9be3b574 username email 時間戳 時區 merge master: Merge made by the 'recursive' strategy.
    c67cf7c3f40324a969d3162b51c8413e9be3b574 a21d0c80d7092ee4d2067b90da202b8a5c5e8925 username email 時間戳 時區 reset: moving to a21d0c80d7092ee4d2067b90da202b8a5c5e8925
    a21d0c80d7092ee4d2067b90da202b8a5c5e8925 a0da4025a0f67503d59f3b7b2f17efa16853aca4 username email 時間戳 時區 reset: moving to a0da4025a0f67503d59f3b7b2f17efa16853aca4
    
  • 找到最下面最開始的一次 reset 操作,上面文件的倒數第二條。格式類似 a b username email 時間戳 時區 reset: moving to b,就是從節點a reset 到了 節點b.

    c67cf7c3f40324a969d3162b51c8413e9be3b574 a21d0c80d7092ee4d2067b90da202b8a5c5e8925 username email 時間戳 時區   reset: moving to a21d0c80d7092ee4d2067b90da202b8a5c5e8925
    
  • 所以我們要恢復到a, 只是執行命令 git reset a, a是節點標識碼 即 git reset c67cf7c3f40324a969d3162b51c8413e9be3b574

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