1.放弃本地更改,未add,未commit
git checkout filename
注:与git checkout branch 区别
2.放弃已add未commit的更改
git reset HEAD filename ---------------只是撤销add 操作,本地修改不会丢失
3.放弃已经commit的修改
git reset --hard HEAD^ ----------------回到上次commit的状态
git reset --hard HEAD^^ ------------------回到前两次提交
git reset --hard commitid
4.放弃已经push的修改
1>git reset HEAD --------------------只是把HEAD指针向后移动
2>git revert commitID --------------------提交一个新的版本,将之前的版本覆盖当前的版本,版本会递增,不影响想要放弃的已push的修改,而revert之后的版本递增,但是push的内容还在,只是存在于上一个版本
git reflog -------------产看commit日志
git reset --hard commitid ---------------回到commitid