场景:假设存在(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的版本号
网友评论