實例一、
git使用過程中 使用reset 進行版本回退。
原始版本文件:
對 test1目錄中的三個文件進行改動:file1_1.txt修改、file1_2.txt 刪除、file1_3.txt重命名、file1_4.txt 新增。並 commit。
對 test2目錄中的三個文件進行改動:file2_1.txt修改、file2_2.txt 刪除、file2_3.txt重命名、file2_4.txt 新增不 git add、file2_5.txt 新增 git add。不commit。
這時使用 reset 進行回退到原始版本。
reset 會有四個參數:
Soft:
git reset --soft head~1
vs
使用soft 參數時,工作區和 index 區都保存。
適用於以下場景:
1、你正在開發某個模塊時,線上分支突然出現了 bug,需要切換到線上分支修復,在切換前需要對當前的工作分支進行保存,於是 commit 一下,當線上分支的 bug 修復後,切換到工作分支,當然可以接着開發,但是如果你想回到 commit 之前的,可以使用這個命令。
2、項目經理分給你一個開發模塊,由於這個模塊比較大,你又把這個大模塊細分成3個小模塊,每個小模塊完成後你都進行了 commit, 3個模塊完成後,你又進行了調試, commit 了兩次bug 修復。在整個開發中你 commit了5次,但是項目經理並不想看到你開發的細節,他只想你給他一個 commit,就是某某模塊開發完成。這時你需要將5次 commit 合併成一個 commit。可以使用這個種方式。
git reset --soft 6e76e7s6es6e7s6e6e
git commit -m "某某模塊開發完成"
Mined:
git reset --mined head~1
使用mined參數時,只保存工作區。
hard:
git reset --hard head~1
keep:
git reset --keep head~1