撤消工作区的修改
git checkout -- file
例如:git checckout -- readme.txt(表示把readme.txt这个文件在工作区的修改撤消)
撤消暂存区的修改
git reset HEAD file
例如:git reset HEAD readme.txt(表示把readme.txt这个文件提交到暂存区的内容撤消,重新放回工作区)
git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。
版本回退
在Git中,用HEAD表示当前版本,也就是最新的提交.
上一个版本就是HEAD^,
上上一个版本就是HEAD^^.
往上100个版本写100个^比较容易数不过来,所以写HEAD~100。
git reset--hard HEAD^:回退到上一个版本
git reset --hard commit_id:指定回到未来的某个版本
要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
git reflog:用来记录你的每一次命令
git commit --amend:此命令将使用当前的暂存区域快照提交。如果刚才提交完没有作任何改动,直接运行此命令的话,相当于有机会重新编辑提交说明,但将要提交的文件快照和之前的一样。
git reset HEAD filename:撤消暂存区的文件
git checkout -- filename:撤消工作区的修改