reset vs revert

2019-05-16  本文已影响0人  陈大事_code

场景:假设存在(A-B-C-D) 四个commit

一. reset

作用:直接删除B、C、D将当前HEAD指向A。

注意点:reset之后,删掉的版本就没有了(不推荐使用),除非必要。

步骤:

git log (查看所有版本号,找到A的版本号)

git reset --hard   【A的版本号】

git push -f (由于回退,当前版本比远程是要旧的,所以需要强制覆盖远程)

二. revert

1. revert多条commit

场景:回退A版本commit

作用::创建一个与目标版本一致的版本,变成 (A-B-C-D-A')

步骤:

git revert -n 【A的版本号】   

git commit -m ‘备注’

git push

上面的-n,即 --no-commit,代表不直接提交,本质上的revert是一条条进行回滚,那么如果存在多个需要revert的commit,会自动生成多条revert的commit,不太美观。-n即为全部放置在暂存区,一次性commit

2. revert多条commit

场景:A/B/C/D四个版本,需要回退B/C

git revert -n 【A的版本号】..【C的版本号】

git commit -m ‘备注’

git push

多个版本回退,是”前开后闭“,所以左侧为A的版本号

上一篇下一篇

猜你喜欢

热点阅读