作者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/cn.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