一、通过git命令
1、恢复到一个旧版本并且旧版本后的都不要
关键命令:git reset
回退原理:git reset --hard命令会将HEAD指针、当前分支指针和索引区都移动到指定的commit ID,从而重置工作区为该版本。
步骤一:查看版本号。git log查找历史或使用git reflog命令查找合并操作的commit ID,找到需要回滚的目标版本号
步骤二:使用 git reset --hard 版本名 命令将版本回退。此命令会将HEAD指针、当前分支指针和索引区都指向指定的commit ID,并重置工作区为该版本。
步骤三:使用 git push -f 提交更改。此时如果用“git push”会报错,因为我们本地库HEAD指向的版本比远程库的要旧,用“git push -f”强制推上去。
2、恢复到一个旧版本并且旧版本后的都保留
关键命令:git revert
回退原理:git revert命令会生成一个新的提交,该提交会包含撤销指定提交的更改,从而达到回退版本的效果
步骤一:查看版本号。git log查找历史或使用git reflog命令查找合并操作的commit ID,找到需要回滚的目标版本号
步骤二:使用 git revert -n 版本号 反做。 这里可能会出现冲突,那么需要手动修改冲突的文件。而且要git add 文件名
步骤三:提交。使用 git commit -m 版本名 提交。
步骤四:使用 git push 推上远程库。
二、通过IDEA回退版本
1、获取版本号。
方式一:打开IDEA的终端,输入 git log 显示历史提交记录。
方式二:右击项目–> Git --> Show History -->选中要回退的版本–>Copy Revision Number,直接复制;
2、输入命令 。git reset --hard 版本号
3、输入正式回滚命令。 git push -f -u origin master
三、总结一些回退命令
1、命令
命令 | 作用 |
---|---|
git log | 查看历史提交记录 |
git reset HEAD | 回退到当前版本(取消暂存区的内容) |
git reset --hard HEAD^ | 回退到上个版本 |
git reset --hard HEAD^ | 回退到上上个版本 |
git reset --hard id (commit hash值) | 回退到指定版本 |
2、git reset --hard & git reset --soft & git reset --mixed 的区别
hard -> 工作区、暂存区、commit 同时回滚
soft -> 保留工作目录、暂存区文章来源:https://www.uudwc.com/A/LaWAg/
mixed->保留工作目录文章来源地址https://www.uudwc.com/A/LaWAg/