1,commit 之前的撤销
未添加至暂存区的撤销(add 之前)
git status
git checkout .
已添加至暂存区的撤销(add 之后,有或者没有commit操作都可以执行)
git reflog
git reset --hard bca6882(relog 中展示的commitId)
2,push之后的撤销
(
git add .
git commit -m "commit"
git push origin brandname
)
等一系列操作后的撤销
不想将本次的操作生效
git revert commitId(提交的id)
git push origin brandname
此次操作就会撤销掉上一次的push
在这个分支上,会生成一条revert 的提交记录
revert 是负负得正,什么意思呢,就是说第一次revert的时候,
上一次push的命令就失效了,再一次revert 后,会回退到之前的之前的状态,
详细的介绍一下
比如我操作一个文件UserController.java
将userName 改为username 经过一系列的git操作
git add .
git commit -m "commit"
git push orgin
后,再进行git revert commitId
再进行git push origin branchname
userName 还是userName,
如果我再revert 的时候,
git revert
git push origin branchname
将userName 还是改为username.
总结为:
git revert 为奇数时生效,为偶数时,失效
3,git 回滚:
将git 回滚到某一次commit操作,在该commitId之前的操作,将全部失效(此方法不建议使用,有风险),
git reset --hard commitId
git push origin branchname --force (强制覆盖)
因为是不可逆的,不建议使用