随手记一记之【git reset 和 git revert】

一张图说明 git reset 与 git revert 的区别:

随手记一记之【git reset 和 git revert】_第1张图片
image.png

当 HEAD 指向 commit 1 时,分别使用git reset [commit0 id] --hardgit revert [commit0 id]命令会产生如下区别:

  • 使用 reset 后,会直接清除 commit 1 的记录。
  • 使用 revert 后,会用 commit 0 新增一次 commit,并且该分支之前的 commit 都会被保留。

git reset

git reset 命令有4个可选参数,分别是:

  • soft,回退到指定 commit,并且该 commit 之后的提交都将变为 add 后的状态
  • mixed,回退到指定 commit,并且该 commit 之后的提交都将变为没有 add 的状态
  • hard,回退到指定 commit,并且该 commit 之后的提交都将舍弃
  • keep ,回退到指定 commit,并且该 commit 之后的提交都将舍弃。但是,本地修改的代码将保留

git revert

git revert 到指定 commit 后,会直接用该 commit 版本的代码覆盖当前代码,并新增一次commit。

你可能感兴趣的:(随手记一记之【git reset 和 git revert】)