git revert與git reset最大的不同是遗淳,git revert 僅僅是撤銷某次提交。
首先要找到對(duì)應(yīng)的版本號(hào):git log
日志顯示了多個(gè)commit 的歷史,commit后面跟的就是版本號(hào)(一長(zhǎng)串字母加數(shù)字組合)
-
git reset --hard xxx
我們得到
當(dāng)輸入:git reset --hard 2773bfdac15f700cdc2d7ab96e66a6991a986f8d
再輸入 git log 時(shí):
晚于這個(gè)時(shí)間的版本全都不見了
這是vim readme.md 是這樣:
之前是這樣:
假設(shè)我們回退到21:19:00的版本:
成功了!
vim read.md 是這樣
再回退:
誒。read就恢復(fù)了
使用hard 恢復(fù)的的版本還是處在commit狀態(tài)
git reset –hard:徹底回退到某個(gè)版本奏甫,本地的源碼也會(huì)變?yōu)樯弦粋€(gè)版本的內(nèi)容(這個(gè)要特別注意,因?yàn)楸镜卮a會(huì)修改)
git reset --soft
soft: 回退到某個(gè)版本 并且處于待commit的狀態(tài)
中午11點(diǎn)提交也沒(méi)了
git reset –soft:回退到某個(gè)版本凌受,只回退了commit的信息阵子,不會(huì)恢復(fù)到index file一級(jí)。如果還要提交胜蛉,直接commit即可
git revert
先修改文件 然后commit
git log 查看
輸入 git revert 0bec6e2ad35ce68582e7d998a195f564a61a14b0
輸入 git revert 2773bfdac15f700cdc2d7ab96e66a6991a986f8d
git log
這里revert 的過(guò)程被記錄下來(lái)了
并且 read.md 被恢復(fù)到最前版本