0、工作区、暂存区、版本库、远程库
1、git add后
使用git reset HEAD *.txt
【暂存区的修改撤销掉,重新放回工作区,也就是取消add操作】(HEAD: 表示当前最新版本),
进一步【想丢弃工作区的修改】,使用git checkout -- *.txt
【git checkout:用版本库里的版本替换工作区的版本,无论是删除还是修改,都可以一键还原】
(git reset HEAD *.TXT 和 git checkout -- *.txt都能撤销add)
2、git commit后
git reset --hard HEAD^ 【或者git reset --hard id(取前5个就行),每次commit都会产生一个id,此--hard取前一个id】
【^ 表示上一次commit, ^^表示上上次commit, 而使用id不用计算是哪次,直接根据id跳指定版本】
小结: add撤销使用git checout , commit撤销使用git reest --hard id
后面摘抄自: https://www.cnblogs.com/kidsitcn/p/4513297.html 网友评论
简单总结一下,其实就是--soft 、--mixed以及--hard是三个恢复等级。使用--soft就仅仅将头指针恢复,已经add的缓存以及工作空间的所有东西都不变。如果使用--mixed,就将头恢复掉,已经add的缓存也会丢失掉,工作空间的代码什么的是不变的。如果使用--hard,那么一切就全都恢复了,头变,aad的缓存消失,代码什么的也恢复到以前状态。
补充:
****************git add: 将修改添加到暂存区、git commit: 将暂存区的修改提交到本地版本库
****************git push:将本地版本库修改提交到远程库