作者nakahusa (NA)
看板PHP
標題[請益] Git reset 後,再回到下一版
時間Fri Sep 5 18:50:24 2014
最近在學習使用 Git,
遇到了一個問題,
假設我目前總共 Commit 了兩次為 A、B,
我使用了 reset 恢復到 A 後,
有辦法再回到 B 嗎?
用 git log 看,B 的 Commit 已經不見了…
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.169.92.52
※ 文章網址: http://webptt.com/m.aspx?n=bbs/PHP/M.1409914227.A.788.html
※ 編輯: nakahusa (118.169.92.52), 09/05/2014 18:51:22
1F:推 duck10704: 記得可以回到某個commit 應該是 git reset ooxx 09/05 19:08
2F:→ duck10704: ooxx 是每個 commit 都會產生的 sha hash code 09/05 19:09
3F:→ duck10704: 印象中是這樣 有錯誤請版友指正一下 :P 09/05 19:09
4F:→ akasan: git reflog 09/05 19:15
5F:推 LPH66: 用 reflog 找出那個 commit 的 hash 之後看你要怎麼做 09/05 19:15
6F:→ LPH66: 以你的狀況 B 是接在現在的 A 後面, 那其實可以直接 merge 09/05 19:15
7F:→ LPH66: git 會判斷 B 確實是接在 A 後面然後做 fast-forward 09/05 19:16
8F:→ LPH66: 一般的狀況 B 不是接現在的 head 後面的話會用 cherry-pick 09/05 19:16
9F:→ LPH66: 這種狀況下會把同樣的內容新 commit 一份接到 head 後面 09/05 19:17
10F:→ LPH66: 一樓的 git reset xxx 的方法則是比較暴力, 直接回到那時 09/05 19:18
11F:→ LPH66: 的狀況, 所以如果中間有增刪的話會換那些不見 09/05 19:18
12F:→ LPH66: 基本上有這種狀況的 reset 多半要 --hard 才會執行 09/05 19:19
13F:→ nakahusa: 已經試出來了,感謝樓上3位! LPH大竟然還詳細解說,太 09/06 10:02
14F:→ nakahusa: 使我感動了 QQ 09/06 10:03