git 撤销工作区的修改
git checkout -- <file name>
把 <file name> 文件在工作区的修改全部撤销,这里有两种情况:
一种是 <file name> 文件自内容修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是 <file name> 文件已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
让 <file name> 这个文件回到最近一次 git commit 或 git add 时的状态。
git reset 撤销:版本回退
-
git reset --hard <版本号>
- 缓存区和工作目录都不会被改变
git reset --soft
- 默认选项。缓存区和你指定的提交同步,但工作目录不受影响
git reset --mixed
- 缓存区和工作目录都同步到你指定的提交
git reset --hard
eg:
- 撤销最新的提交,回退到上次提交
git reset --hard HEAD^
- 撤销最新的两次提交,回退到上上次提交
git reset --hard HEAD~2
- 撤销到 commit_id 之前的提交,回退到 commit_id 的提交
git reset --hard <版本号>
- 缓存区和工作目录都不会被改变
-
git reset --xxx
- 撤销操作时,将你的改动从缓存区中移除,但是这些改动还留在工作目录中
git reset --mixed HEAD^
- 撤销操作时,完全舍弃你的改动
git reset --hard HEAD^
- 撤销操作时,你的改动还保留在你的缓存区和工作目录
git reset --soft HEAD^
[图片上传失败...(image-edfe33-1554864437960)]
- 撤销操作时,将你的改动从缓存区中移除,但是这些改动还留在工作目录中
-
git 撤销已经 push 到远端的 commit
git reset --hard <版本号> // 为了覆盖掉远端的版本信息,使远端的仓库也回退到相应的版本,需要加上参数--force git push origin <分支名> --force
git 查看历史
查看提交历史
// 查看提交历史,以便回退到某个版本
git log
查看命令历史
// 查看命令历史,以便确定回到未来的某个版本【重返未来】
git reflog