$ git diff
$ cat readme.txt Git is a version control system. Git is free software. Git is a distributed version control system. Git is free software. 添加一行測試工做區、暫存區、分支。 cat 命令測試。 測試修改文件後各區狀態! 測試git diff,查看工做區和分支文件的修改狀況! 再次測試git diff對比工做區和版本庫最新版本的區別。
$ git diff diff --git a/readme.txt b/readme.txt index 1149d4c..3bbbb47 100644 --- a/readme.txt +++ b/readme.txt @@ -6,4 +6,5 @@ Git is free software. cat 命令測試。 測試修改文件後各區狀態! 測試git diff,查看工做區和分支文件的修改狀況! -再次測試git diff對比工做區和版本庫最新版本的區別。 \ No newline at end of file +再次測試git diff對比工做區和版本庫最新版本的區別。 +測試撤銷修改。 \ No newline at end of file
$ cat readme.txt Git is a version control system. Git is free software. Git is a distributed version control system. Git is free software. 添加一行測試工做區、暫存區、分支。 cat 命令測試。 測試修改文件後各區狀態! 測試git diff,查看工做區和分支文件的修改狀況! 再次測試git diff對比工做區和版本庫最新版本的區別。 測試撤銷修改。
$ git status On branch master Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: readme.txt no changes added to commit (use "git add" and/or "git commit -a")
Git會告訴你,git checkout – file能夠丟棄工做區的修改:html
$ git checkout -- readme.txt
命令git checkout – readme.txt意思就是,把readme.txt文件在工做區的修改所有撤銷,這裏有兩種狀況:前端
一種是readme.txt自修改後尚未被放到暫存區,如今,撤銷修改就回到和版本庫如出一轍的狀態;git
一種是readme.txt已經添加到暫存區後,又做了修改,如今,撤銷修改就回到添加到暫存區後的狀態。github
總之,就是讓這個文件回到最近一次git commit或git add時的狀態。web
如今,看看readme.txt的文件內容:小程序
$ git diff
$ cat readme.txt Git is a version control system. Git is free software. Git is a distributed version control system. Git is free software. 添加一行測試工做區、暫存區、分支。 cat 命令測試。 測試修改文件後各區狀態! 測試git diff,查看工做區和分支文件的修改狀況! 再次測試git diff對比工做區和版本庫最新版本的區別。
能夠看出工做區的文件已經回到修改以前的版本!微信小程序
注意:git checkout – file命令中的–很重要,沒有–,就變成了「切換到另外一個分支」的命令,咱們在後面的分支管理中會再次遇到git checkout命令。微信
$ cat readme.txt Git is a version control system. Git is free software. Git is a distributed version control system. Git is free software. 添加一行測試工做區、暫存區、分支。 cat 命令測試。 測試修改文件後各區狀態! 測試git diff,查看工做區和分支文件的修改狀況! 再次測試git diff對比工做區和版本庫最新版本的區別。
$ cat readme.txt Git is a version control system. Git is free software. Git is a distributed version control system. Git is free software. 添加一行測試工做區、暫存區、分支。 cat 命令測試。 測試修改文件後各區狀態! 測試git diff,查看工做區和分支文件的修改狀況! 再次測試git diff對比工做區和版本庫最新版本的區別。 修改添加到暫存區測試撤銷! $ git add readme.txt
2.1 查看狀態svg
$ git status On branch master Changes to be committed: (use "git reset HEAD <file>..." to unstage) modified: readme.txt
Git一樣告訴咱們,用命令git reset HEAD 能夠把暫存區的修改撤銷掉(unstage),從新放回工做區:學習
$ git reset HEAD readme.txt Unstaged changes after reset: M readme.txt
git reset命令既能夠回退版本,也能夠把暫存區的修改回退到工做區。當咱們用HEAD時,表示最新的版本。
2.2 再次查看狀態
$ git status On branch master Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: readme.txt no changes added to commit (use "git add" and/or "git commit -a")
Git會告訴你,git checkout – file能夠丟棄工做區的修改,同時查看狀態:
$ git checkout -- readme.txt $ git status On branch master nothing to commit, working tree clean
$ cat readme.txt Git is a version control system. Git is free software. Git is a distributed version control system. Git is free software. 添加一行測試工做區、暫存區、分支。 cat 命令測試。 測試修改文件後各區狀態! 測試git diff,查看工做區和分支文件的修改狀況! 再次測試git diff對比工做區和版本庫最新版本的區別。
若是修改了,而且提交到分支了,想要撤銷,參考GIT學習----第三節:版本回退。
$ cat readme.txt Git is a version control system. Git is free software. Git is a distributed version control system. Git is free software. 添加一行測試工做區、暫存區、分支。 cat 命令測試。 測試修改文件後各區狀態! 測試git diff,查看工做區和分支文件的修改狀況! 再次測試git diff對比工做區和版本庫最新版本的區別。
$ cat readme.txt Git is a version control system. Git is free software. Git is a distributed version control system. Git is free software. 添加一行測試工做區、暫存區、分支。 cat 命令測試。 測試修改文件後各區狀態! 測試git diff,查看工做區和分支文件的修改狀況! 再次測試git diff對比工做區和版本庫最新版本的區別。 修改提交到分支測試! $ git add readme.txt $ git commit -m "提交到分支的修改進行撤銷提交" [master 076ec5c] 提交到分支的修改進行撤銷提交 1 file changed, 2 insertions(+), 1 deletion(-)
$ git reset --hard HEAD^ HEAD is now at ffb306a 再次測試git diff提交測試
$ cat readme.txt Git is a version control system. Git is free software. Git is a distributed version control system. Git is free software. 添加一行測試工做區、暫存區、分支。 cat 命令測試。 測試修改文件後各區狀態! 測試git diff,查看工做區和分支文件的修改狀況! 再次測試git diff對比工做區和版本庫最新版本的區別。
發現的確被撤銷了!世界完美了!
QQ交流羣: 264303060