今天來講一講關(guān)于git reset 和 git revert的區(qū)別
在本地新建一個(gè)倉(cāng)庫(kù)名為test
mkdir test
進(jìn)入test cd test
將test初始化為git倉(cāng)庫(kù)
$ git init
Initialized empty Git repository in C:/Users/Administrator/Desktop/test/.git/
在倉(cāng)庫(kù)里面新建一個(gè)文件,并添加到倉(cāng)庫(kù)中
touch 1.txt
git add .
git commit -m "add 1.txt"
[圖片上傳失敗...(image-44efc6-1514642567342)]
推送到遠(yuǎn)程倉(cāng)庫(kù)中
git remote add origin git@github.com:WebsnowDrop/test.git
這時(shí),git就有了第一個(gè)commit add 1.txt
[圖片上傳失敗...(image-7f6d09-1514642567342)]
git revert
下面,修改1.txt的內(nèi)容為"第一次修改",這時(shí)1.txt的內(nèi)容為
[圖片上傳失敗...(image-7408b1-1514642567342)]
這時(shí),執(zhí)行
git revert HEAD
git push origin master
我們看看會(huì)發(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ū)仅政,倉(cāng)庫(kù)中的所有版本退回到指定id的版本