reset(重置、重新设定)

回滚到指定版本

  1. git reset --hard 0324c4273dd8aff40d0bf00b56b760b0d55e5f2f【版本号从git的提交记录里获得】
  2. git push -f 【强制提交】

revert(使恢复原状、归位)

以下来自一篇文章的笔记,文章地址暂时找不到了……

回滚“单一提交”

  1. git revert 0324c4273dd8aff40d0bf00b56b760b0d55e5f2f

image.png

回滚“连续提交”

image.png

回滚一次“合并”

回滚合并时,如果直接使用 git revert mergeCommit 实际上是递归回滚里面的每一个节点,指定 -m 是指定以哪一个分支为主线,当前所在分支为 1,依次类推(一次合并多个分支时会 > 2,正常只有 1 和 2)
image.png

回滚“混合场景”

image.png

回滚有点复杂的“混合场景”

image.png

回滚非常复杂的“混合场景”

image.png

image.png

  1. git revert N`..S`
  2. // 仅回滚非 merge Master 节点,保留 Master代码
  3. git log B``^..L`` --first-parent --no-merges --pretty=format:%H | xargs | xargs git cherry-pick -n
  4. git revert E`..F`

最后关于回滚的思考

image.png