-
1.未add,未commit
在上一篇中我們修改了myTeam.txt,未commit,正在就要commit 時突然發(fā)現(xiàn)末尾處多了一個bu健康的網(wǎng)址,估計是不小心copy進(jìn)來了。,好在及時發(fā)現(xiàn)了。手動刪除后用git status 看下狀態(tài)。
git status

status.png
從圖中發(fā)現(xiàn)git 告訴我們我們還可以用下面的命令來撤銷工作區(qū)的修改。
git checkout -- <file>...
撤銷工作區(qū)的修改包括這幾種情況:
1.myTeam.txt修改后未放到暫存區(qū),現(xiàn)在,撤銷修改就回到和版本庫一模一樣的狀態(tài);
2.myTeam.txt修改后已放到暫存區(qū)后,且又作了修改,現(xiàn)在,撤銷修改就回到添加到暫存區(qū)后的狀態(tài)。
PS:git checkout -- file 命令中的-- 很重要,沒有-- ,就變成了“切 換到另一個分支”的命令,關(guān)于分支我們后面再講。
git checkout -- myTeam.txt
文件內(nèi)容果然恢復(fù)了原貌。
-
2.已a(bǔ)dd,未commit
繼續(xù)修改myTeam.txt, 已git add 后準(zhǔn)備commit ,結(jié)果又發(fā)現(xiàn)在末尾處有個bu健康的網(wǎng)址。
http://www.***1024.cc
慘了,趕緊git status 看下

status2.png
上圖中Git同樣告訴我們,用命令git reset HEAD file 可以把暫存區(qū)的修改撤銷掉(unstage),重新放回工作區(qū),再用git status 查看一下
git reset HEAD myTeam.txt
git status

reset.png
現(xiàn)在暫存區(qū)是干凈的,工作區(qū)有修改,還記得怎么丟棄工作區(qū)的修改嗎?
git checkout -- myTeam.txt
git status

checkout.png
一切都OK了。
- 總結(jié)
-
1.修改后 未add(添加到暫存區(qū)) 需要撤銷修改時:
a.git checkout -- myfile.txt 或 手動刪除工作區(qū)修改
b.工作區(qū) : clean 暫存區(qū): clean -
2.修改后 add了(未commit) 再次修改文件 要撤銷第二次修改時:
a.git checkout -- myfile.txt (將暫存區(qū)恢復(fù)到工作區(qū))
b.暫存區(qū)有第一次的修改需要commit -
3.修改后 add了(未commit),需要撤銷修改時:
a.git reset HEAD myfile.txt (將暫存區(qū)修改刪除)
b.此時工作區(qū)的修改還未撤銷,git checkout -- myfile.txt (撤銷工作區(qū)修改) -
4.修改后 add并commit了,需要撤銷修改時:
a.git reset --hard HEAD^ (版本回退)
_本站文章為 寶寶巴士 SD.Team 原創(chuàng),轉(zhuǎn)載務(wù)必在明顯處注明:(作者官方網(wǎng)站: 寶寶巴士 ) _
轉(zhuǎn)載自【寶寶巴士SuperDo團(tuán)隊】原文鏈接: http://m.itdecent.cn/p/fd635b8a65b8