$ 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