Git reset 和 revert 的区别

reset 和 revert 的区别

git reset

reset
git reset [--soft | --mixed | --hard
  • - -mixed

    工作区不变,只是将版本库和暂存区 信息回退到了某个版本.

  • - -soft

    工作区不变,只回退到commit 信息到某个版本.暂存区不变,直接commit即可再次提交.

  • - -hard

    工作区和暂存区都会回退到某个版本.(本地代码仓库源码)

    如果在远程push代码以后,也使用 reset --hard 回退代码,这样你线上的代码并没有变,当你再次提交的时候很可能会出现代码冲突问题。


git revert

git revert [--[no-]edit] [-n] [-m parent-number] [-s] [-S[]] …​
git revert --continue
git revert --quit
git revert --abort

git revert 用法是撤销某次操作,此次操作之前和之后的commit和history都会保留,并且把这次撤销
作为一次最新的提交,将需要revert的版本的内容再反向修改回去,版本会递增,不影响之前提交的内容。

  • git revert HEAD

    撤销上一次提交

  • git revert HEAD~

    撤销上上一次提交

  • git revert commit ...

    撤销指定的版本,撤销也会作为一次提交进行保存

你可能感兴趣的:(Git reset 和 revert 的区别)