1.如果你只是編輯了工作區(qū) 未執(zhí)行git add 你執(zhí)行git checkout -- file 即可
2.如果你執(zhí)行了git add
使用 git reset HEAD file
恢復到 編輯后的狀態(tài)
3.如果已經(jīng)執(zhí)行了git commit,使用 git reset --hard commit_id
或者直接 git reset (--hard) HEAD^ 回退到上一個版本
首先妇穴,Git必須知道當前版本是哪個版本胯杭,在Git中率翅,用HEAD
表示當前版本,也就是最新的提交的版本注暗,上一個版本就是HEAD,上上一個版本就是HEAD墓猎,當然往上100個版本寫100個比較容易數(shù)不過來捆昏,所以寫成HEAD~100
可以 先通過git log
查看 commid_id
git log --pretty=oneline
57a138bd7d30179599d3de1a4a8a570776df79cf test
79711014976de6ea139b8025c3a7c48564ba5d8b test
506b6c51d837fc0f5fc52a5eb81b195d188d06af test
96bfb76b45603e779cc27dd551e209932bede06a liss
查看一下 當前的commit id
比如我想回退到 79711014976de6ea139b8025c3a7c48564ba5d8b
那么 執(zhí)行
git reset --hard 79711014976de6ea139b8025c3a7c48564ba5d8b
HEAD is now at 7971101 test
現(xiàn)在我們再執(zhí)行
git log --pretty=oneline
79711014976de6ea139b8025c3a7c48564ba5d8b test
506b6c51d837fc0f5fc52a5eb81b195d188d06af test
96bfb76b45603e779cc27dd551e209932bede06a liss
現(xiàn)在已經(jīng)回退到 指定版本了
如果現(xiàn)在你又后悔回退了 想回到未回退的版本,那git log 找不到我的commit_id了腫么辦毙沾?哈哈 最簡單的方法就是你的屏幕滾動一下之前的界面還存在哦 我們再執(zhí)行git reset --hard commit就可以了
但是如果反反復復 找不到了怎么辦呢骗卜?
Git提供了一個命令git reflog,用來記錄你的每一次命令
bogon:lishuangshuang MOMO$ git reflog
96bfb76 HEAD@{0}: reset: moving to 96bfb76b
506b6c5 HEAD@{1}: reset: moving to HEAD^
b51a33f HEAD@{2}: commit: 添加ooo
506b6c5 HEAD@{3}: reset: moving to HEAD^
現(xiàn)在放心了吧 git實現(xiàn)了吃后悔藥的夢想哦
版本號沒必要寫全左胞,前幾位就可以了寇仓,Git會自動去找。當然也不能只寫前一兩位烤宙,因為Git可能會找到多個版本號遍烦,就無法確定是哪一個了√烧恚可以 git reset --hard 7971101