Git中如何回滚到某个版本?代码举例讲解

在Git中回滚到某个版本,可以使用git reset和git checkout命令。

git reset 的用法如下:

  1. git reset –hard 回滚到某个提交的版本,提交之后的变化都将丢失。
  2. git reset HEAD 撤销缓存区的变化,相当于取消git add操作。file参数可以是具体文件路径或文件通配符。
  3. git reset 重置当前分支到branch_name分支的 tip,相当于取消git merge操作。

例如:
回滚到上一个版本:

$ git reset --hard HEAD^ 

回滚到某个提交id的版本:

$ git reset --hard f789d3 

撤销缓存区的变化:

$ git reset HEAD *.py  # 撤销所有py文件git add的操作

重置分支到dev分支:

$ git reset dev

git checkout 的用法如下:
git checkout — 丢弃工作区的修改,恢复上一次提交的文件内容。file参数可以是具体文件路径或文件通配符。

例如:

$ git checkout -- *.py  # 撤销所有py文件工作区的修改

git reset 在提交历史中”穿梭”,会清除指定版本之后的提交。所以要慎用这个命令,特别是git reset –hard。
git checkout 仅作用于工作区与暂存区,不会删除提交历史。所以相对来说更安全一些。