Git中回退的操作使用比较频繁,下面总结一下
撤销上一次git add动作
git reset HEAD <file>
取消最近一次工作区到暂存区的提交,实际是用HEAD分支内容覆盖暂存区,工作区不会变化
撤销工作区的修改
git checkout -- <file>
暂存区回退工作区,实际是用暂存区的内容覆盖工作区,工作区内容会被暂存区覆盖
注意:git checkout 命令同时也是切换分支的命令,容易混淆。这里用"--"符号,是为了避免存在名为file的分支导致歧义。如果不存在此情况,"--"可以省略。
撤销上一次git commit动作
git reset HEAD~
本地库回退上一个版本(HEAD指针移动到上一个版本)
git reset HEAD~<n>
本地库回退到前n个版本(一个波浪线表示回退一个版本。n表示波浪线的个数)
参数:
--mixed: 默认选项,将快照回滚到暂存区
--soft: 只移动HEAD指针(改变本地库)
--hard: 将快照同时回滚到暂存区和工作目录
git reset ID号
回退指定版本(用ID号)
参数同上
回退个别文件
git reset 版本快照 文件名/路径
只改变文件,不影响HEAD指针。不能使用(soft/hard)参数,只改变文件到暂存区