在Git中回滚到某个版本,可以使用git reset和git checkout命令。
git reset 的用法如下:
- git reset –hard 回滚到某个提交的版本,提交之后的变化都将丢失。
- git reset HEAD 撤销缓存区的变化,相当于取消git add操作。file参数可以是具体文件路径或文件通配符。
- 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 仅作用于工作区与暂存区,不会删除提交历史。所以相对来说更安全一些。