这里写目录标题
[Q&A] 什么是版本回退?
Git中的“版本回退”是指将仓库中的代码状态恢复到之前某个提交的状态。
回退程度介绍
git reset --soft 783c8a8 回退到提交c983d4版本 并将回退的代码全部放入到 暂存区中 (文件变蓝)
git reset --mixed 783c8a8 回退到提交c983d4版本 并将回退的代码全部放入到 工作区中 (文件变红)
git reset 783c8a8
git reset --hard 783c8a8 回退到提交c983d4版本 清空 工作目录及暂存区 所有修改 (修改内容被直接删除)
[Ref] Git reset 三种模式(hard,soft,mixed)
回退场景介绍
场景1:撤销工作区的修改・已修改还未add・还未加到暂存区・当前文件为红色
git checkout test.txt 撤销 单个文件・即回到最近一次 git commit 时的状态,所有改动全部清除
git checkout . 撤销 全部文件・即回到最近一次 git commit 时的状态,所有改动全部清除
场景2:撤销暂存区的修改・已add还未commit・还未加到本地仓库・当前文件为蓝色
git reset HEAD test.txt 1. 恢复指定文件到工作区・Unstaged changes after reset
git checkout test.txt 2. 撤销指定文件的修改・此时就是场景1
git reset HEAD . 1. 恢复全部文件到工作区・Unstaged changes after reset
git checkout . 2. 撤销全部文件的修改・此时就是场景1
场景3:回退到指定提交・已commit・当前文件为白色
git reset --hard 783c8a8 回退到 783c8a8版本
git reset --hard ORIG_HEAD git reset, git merge, git rebase等危险操作 失误时 回退到 原来操作前版本
git reset --hard HEAD 回退到 当前分支 最新提交
git reset --hard HEAD^ 回退到 当前分支 最新提交的上1个提交
git reset --hard HEAD^^ 回退到 当前分支 最新提交的上2个提交
git reset --hard HEAD^^^^^^ 回退到 当前分支 最新提交的上^个数个提交
参考
拓展请转阅 : Git常用命令汇总