git 的撤销与回滚

1,commit  之前的撤销


未添加至暂存区的撤销(add 之前)
git status
git checkout .


已添加至暂存区的撤销(add 之后)

git reset HEAD :将已经添加至暂存区的文件,回退到未添加到暂存区的状态,然后再git checkout ,回退到最为原始的状态



2,commit 之后的撤销

(
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   (强制覆盖)

因为是不可逆的,不建议使用

猜你喜欢

转载自www.cnblogs.com/wangchuanfu/p/8909728.html