git 撤销文件的修改(checkout/reset )
使用 git 撤銷某個文件的修改,分為兩種情況:
情況1:在工作區已修改,但并未提交到暫存區(即并沒有add)
撤銷單個文件修改,使用下面命令:
$ git checkout -- 文件名若想撤銷工作區中所有文件的修改,則
$ git checkout .注意:git chekcout 是讓文件回到最近一次該文件git commit或git add時的狀態。
2.工作區修改了之后,提交到了暫存區(即add),如何撤銷修改?
這里也分為兩種情況:
2.1 對于該文件來說,還沒有commit過一次。這時候,git status 后git給出提示:
是的,使用git rm --cached 文件名命令來放棄該文件的暫存。
這時,你再用git status命令查看:
上面的意思就是說,test1文件已經修改過了,沒有提交到暫存區,不被git追蹤。此時,你用git checkout -- file是沒有用的。
因為,前面提到過,git checkout -- file是回到最近的一次commit或者add。但是,當前你還沒有一次commit過,并且,add也已經撤銷了,所以Git找不到該文件在以往記錄中的存在,自然沒法用git checkout -- file。
git提示你:該文件在Git目前所知的文件中找不到。此時,你可以任意的對此文件進行修改了,想好了之后,再提交到暫存區。
2.2 對于要撤銷的文件,你已經有了commit的記錄了。
要先:git reset HEAD file 讓該文件回到工作區的狀態。
然后:git chekcout -- file即可
先使用git checkout – 文件,文件就會變成添加到暫存區后的狀態,也就是第一中情況,再使用 reset 命令即可將文件恢復到與版本庫一致的狀態。
總之,記住一點:
“git checkout – 文件”命令,撤銷的是工作中文件的修改,
而“git reset HEAD – 文件”命令,撤銷的是暫存區中文件的修改。
總結
以上是生活随笔為你收集整理的git 撤销文件的修改(checkout/reset )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用git remote提交代码
- 下一篇: scrapy 解决Redirecting