今天來講一講關(guān)于git reset 和 git revert的區(qū)別
在本地新建一個倉庫名為test
mkdir test
進入test cd test
將test初始化為git倉庫
$ git init
Initialized empty Git repository in C:/Users/Administrator/Desktop/test/.git/
在倉庫里面新建一個文件,并添加到倉庫中
touch 1.txt
git add .
git commit -m "add 1.txt"
[圖片上傳失敗...(image-44efc6-1514642567342)]
推送到遠程倉庫中
git remote add origin git@github.com:WebsnowDrop/test.git
這時,git就有了第一個commit add 1.txt
[圖片上傳失敗...(image-7f6d09-1514642567342)]
git revert
下面,修改1.txt的內(nèi)容為"第一次修改",這時1.txt的內(nèi)容為
[圖片上傳失敗...(image-7408b1-1514642567342)]
這時,執(zhí)行
git revert HEAD
git push origin master
我們看看會發(fā)生什么
[圖片上傳失敗...(image-7ee995-1514642567342)]
我們看到commit增加了一條新的記錄"Revert 第一次修改 "。
讓我們看看1.txt的內(nèi)容
[圖片上傳失敗...(image-efc5f4-1514642567342)]
1.txt中的內(nèi)容變?yōu)樾薷闹暗膬?nèi)容了!我們添加的修改不見了。
所以,git revert的作用為
新增一次commit,而將工作區(qū)的內(nèi)容還原到之前修改內(nèi)容之前的版本
git reset
再讓我們執(zhí)行git reset d9fdc66ca52093b73874ba95a9d8eff4d011cda3看下效果
[圖片上傳失敗...(image-fb9523-1514642567342)]
看到第二和第三次commit記錄都消失了!
所以,git reset的作用為
將工作區(qū),暫存區(qū),倉庫中的所有版本退回到指定id的版本