git reset --hard xxx 浴滴, git reset --soft xxx 拓萌, git revert xxx
-
git revert
撤銷某次操作(commit),并把這次撤銷當(dāng)做一次新的提交升略,版本號(hào)遞增微王,就是用一次新的提交(commit)來(lái)回滾之前的commit。
撤銷前一次 commit
git revert HEAD
image.png
首先品嚣,我分3次建立了3個(gè)文件夾炕倘!
首先,執(zhí)行g(shù)it revert head 翰撑,會(huì)刪掉file3罩旋,并生成一次log記錄。
image.PNG
image1.PNG
-
git reset
git reset 常用于代碼回滾,是直接刪除指定的 commit, 但是文件和修改會(huì)移動(dòng)到 workspace 工作區(qū).
1. git reset --soft xxx:
- soft命令會(huì)讓版本回到某次commit后的狀態(tài)眶诈,但并不改動(dòng)工作目錄中的文件涨醋。執(zhí)行g(shù)it reset --soft后
可以看出版本退回了q1,但之前提交的文件變成了有新改動(dòng)的狀態(tài)逝撬。
2.git hard (修改版本庫(kù)浴骂,修改暫存區(qū),修改工作區(qū))
hard HEAD~1 (或是版本號(hào))意為將版本庫(kù)回退1個(gè)版本宪潮,但是不僅僅是將本地版本庫(kù)的頭指針全部重置到指定版本溯警,也會(huì)重置暫存區(qū)趣苏,并且會(huì)將工作區(qū)代碼也回退到這個(gè)版本
-
二者的區(qū)別:
git reset 是把HEAD向后移動(dòng)了一下
git revert 是HEAD繼續(xù)前進(jìn),只是新的 commit 的內(nèi)容和要 revert 的內(nèi)容正好相反愧膀,能夠抵消要被revert的內(nèi)容.