git本地提交,推送到远程之后想要撤回的一些常见情况

Git:常见问题

1.soft mixed hard 的区别?

1. soft:移动本地库head 指针
结果:回滚后,仅仅是把本地库的指针移动了,而暂存区和你本地的代码是没有做任何改变的,而你上次改动已提交committed到本地库的代码显示是绿色即未提交
2. mixed: 移动本地库head指针->重置暂存区
结果:回滚后,不仅移动了本地库的指针,同时暂存区的东西也没了,意思就是上次添加到暂存区的文件没了
3. hard: 移动本地库head 指针->重置暂存区->重置工作区
结果:回滚后,本地代码就是你回退版本的代码

2.add之后如何撤销,commit 如何撤销 ,push之后如何撤销?

add之后使用rollback
commit之后使用,git reset --hard commitId
push之后使用,git reset --hard commitId  -->  git push -f

3.reset和revert的区别

区别:1、reset是彻底回退到指定的commit版本,该commit后的所有commit都将被清除;而revert仅是撤销指定commit的修改,并不影响后续的commit。2、reset执行后不会产生记录,revert执行后会产生记录。

reset,使用方法:git reset --hard commit ,commit是提交后产生的id,执行该命令后,代码会完全回退到本次提交时的状态,工作暂存区以及本次提交后面的提交内容将会被完全清除,包括提交记录!
执行上面的命令之后,HEAD已经指向了所要退回的分支,但你刷新后台时,发现并没有什么变化,这是因为我们还需要执行一下push,但这里需要注意的是,因为本地代码回到了旧版本,但远程仓库是新版本和本地不一致,所以你在用git push时会报错,这里我们需要使用强制提交,git push -f

你可能感兴趣的:(java学习,git,github)