git reset
切换到指定分支,这里以master为例,下面的操作都是在master 分支上操作
git checkout master
- --soft 缓存区和工作目录都不会被改变
- --mixed 默认选项。缓存区和你指定的提交同步,但工作目录不受影响
- --hard 缓存区和工作目录都同步到你指定的提交
git reset HEAD~1
介绍 :撤销commit history 中的内容
虽然在调用时加上 --hard选项可以令git reset成为一个危险的命令(译注:可能导致工作目录中所有当前进度丢失!),但本例中工作目录内的文件并不会被修改。不加选项地调用git reset并不危险——它只会修改暂存区域
注:可以用这个操作来 删除远程仓库的最近一次错误提交 示例操作:
git add .
git commit -m "提交1"
#push完成,远程仓库 commit history已经有记录了
git push
#删除最近一次的commit 操作,这个操作是在本地的,将git HEAD 指针定位到上次提交以前
git reset HEAD~1
#强制reset 的操作,在远程仓库中同步,达到删除错误push 的目的
git push --force
- 图解:
- 执行命令前:
<img src="https://ws3.sinaimg.cn/large/005AQjvJly1fvenbiduw4j30sl0g7m