Git撤銷工作區(qū)修改

撤銷工作區(qū)修改

命令git checkout -- readme.txt意思就是,把readme.txt文件在工作區(qū)的修改全部撤銷,這里有兩種情況:

  • 一種是readme.txt自修改后還沒有被放到暫存區(qū),現(xiàn)在,撤銷修改就回到和版本庫(kù)一模一樣的狀態(tài);

  • 一種是readme.txt已經(jīng)添加到暫存區(qū)后,又作了修改,現(xiàn)在,撤銷修改就回到添加到暫存區(qū)后的狀態(tài)。

總之,就是讓這個(gè)文件回到最近一次git commit或git add時(shí)的狀態(tài)。

git checkout -- file命令中的--很重要,沒有--,就變成了“切換到另一個(gè)分支”的命令,我們?cè)诤竺娴姆种Ч芾碇袝?huì)再次遇到git checkout命令。


撤銷暫存區(qū)修改

現(xiàn)在假定是凌晨3點(diǎn),你不但寫了一些胡話,還git add到暫存區(qū)了:

$ cat readme.txt
Git is a distributed version control system.
Git is free software distributed under the GPL.
Git has a mutable index called stage.
Git tracks changes of files.
My stupid boss still prefers SVN.

$ git add readme.txt```
慶幸的是,在commit之前,你發(fā)現(xiàn)了這個(gè)問題。用git status查看一下,修改只是添加到了暫存區(qū),還沒有提交:

$ git status

On branch master

Changes to be committed:

(use "git reset HEAD <file>..." to unstage)

modified: readme.txt

```

Git同樣告訴我們,用命令git reset HEAD file可以把暫存區(qū)的修改撤銷掉(unstage),重新放回工作區(qū):

$ git reset HEAD readme.txt
Unstaged changes after reset:
M       readme.txt```

<u>`git reset`命令既可以回退版本,也可以把暫存區(qū)的修改回退到工作區(qū)。</u>

撤銷緩存區(qū)的修改后,我們還需要撤銷掉工作區(qū)的修改,再用`git checkout -- readme.txt`

$ git checkout -- readme.txt

$ git status

On branch master

nothing to commit (working directory clean)```


現(xiàn)在,假設(shè)你不但改錯(cuò)了東西,還從暫存區(qū)提交到了版本庫(kù),怎么辦呢?還記得版本回退一節(jié)嗎?可以回退到上一個(gè)版本。不過,這是有條件的,就是你還沒有把自己的本地版本庫(kù)推送到遠(yuǎn)程。還記得Git是分布式版本控制系統(tǒng)嗎?我們后面會(huì)講到遠(yuǎn)程版本庫(kù),一旦你把“stupid boss”提交推送到遠(yuǎn)程版本庫(kù),你就真的慘了……

完美的小結(jié)
  • 場(chǎng)景1:當(dāng)你改亂了工作區(qū)某個(gè)文件的內(nèi)容,想直接丟棄工作區(qū)的修改時(shí),用命令git checkout -- file
    。
  • 場(chǎng)景2:當(dāng)你不但改亂了工作區(qū)某個(gè)文件的內(nèi)容,還添加到了暫存區(qū)時(shí),想丟棄修改,分兩步,第一步用命令git reset HEAD file
    ,就回到了場(chǎng)景1,第二步按場(chǎng)景1操作。
  • 場(chǎng)景3:已經(jīng)提交了不合適的修改到版本庫(kù)時(shí),想要撤銷本次提交,參考版本回退一節(jié),不過前提是沒有推送到遠(yuǎn)程庫(kù)。

本文轉(zhuǎn)自:廖大神的官方網(wǎng)站
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013744142037508cf42e51debf49668810645e02887691000

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git,從https:/...
    落魂灬閱讀 12,813評(píng)論 4 54
  • 慢慢轉(zhuǎn)涼的天氣,讓日子顯得淡淡的。 終于賴不過,開始了我的學(xué)車之旅。 和很多人一樣,最痛恨的是倒樁,女人的直覺在這...
    吾卷卷兒閱讀 255評(píng)論 0 0
  • 來公司附近的書店看會(huì)書,各種熊孩子讓人苦不堪言。惹得對(duì)面看教師招聘基礎(chǔ)知識(shí)的姑娘連連嘆氣,突然想說,現(xiàn)在的人都怎么...
    阿穎是個(gè)好孩子閱讀 403評(píng)論 0 0
  • 我是一個(gè)喜歡學(xué)習(xí),模仿別人的人,以前聽左鄰右舍的人夸某人這里聰明,那里讀書成績(jī)好啊,會(huì)燒菜啊,這里很會(huì)說啊等………...
    夏慕琪閱讀 491評(píng)論 2 3

友情鏈接更多精彩內(nèi)容