网站打不开 别的电脑能打开,wordpress 转载请注明,做个网站的费用,工商注册查询官网Git 图文详解#xff08;八#xff09;#xff1a;后悔药 - 撤销变更 1.后悔指令 #x1f525;2.回退版本 reset3.撤销提交 revert4.checkout / reset / revert 总结 发现写错了要回退怎么办#xff1f;看看下面几种后悔指令吧#xff01;
❓ 还没提交的怎么撤销#x… Git 图文详解八后悔药 - 撤销变更 1.后悔指令 2.回退版本 reset3.撤销提交 revert4.checkout / reset / revert 总结 发现写错了要回退怎么办看看下面几种后悔指令吧
❓ 还没提交的怎么撤销 —— checkout、reset 还未提交的修改工作区、暂存区不想要了用签出指令checkout进行撤销清除。或者用 checkout 的新版回滚指令 reset。 ❓ 已提交但没有 push 的提交如何撤销—— reset、revert。❓ 已 push 的提交如何撤销—— 同上先本地撤销然后强制推送 git push origin -f⚠️注意慎用 记得先 pull 获取更新。 1.后悔指令 指令 描述 git checkout .撤销工作区的未暂存修改把暂存区恢复到工作区。不影响暂存区如果没暂存则撤销所有工作区修改git checkout [file]同上file 指定文件git checkout HEAD .撤销工作区、暂存区的修改用 HEAD 指向的当前分支最新版本替换工作区、暂存区git checkout HEAD [file]同上file 指定文件git reset撤销暂存区状态同 git reset HEAD不影响工作区git reset HEAD [file]同上指定文件 fileHEAD 可省略git reset [commit]回退到指定版本清空暂存区不影响工作区。工作区需要手动 git checkout 签出git reset --soft [commit]移动分支 master、HEAD 到指定的版本不影响暂存区、工作区需手动 git checkout 签出更新git reset --hard HEAD撤销工作区、暂存区的修改用当前最新版git reset --hard HEAD~回退到上一个版本并重置工作区、暂存区内容git reset --hard [commit]回退到指定版本并重置工作区、暂存区内容git revert [commit]撤销一个提交会用一个新的提交原提交的逆向操作来完成撤销操作如果已 push 则重新 push 即可
git checkout .、git checkout [file] 会清除工作区中未添加到暂存区的修改用暂存区内容替换工作区。git checkout HEAD .、git checkout HEAD [file] 会清除工作区、暂存区的修改用 HEAD 指向的当前分支最新版本替换暂存区、工作区。
# 只撤销工作区的修改未暂存
$ git checkout .
Updated 1 path from the index# 撤销工作区、暂存区的修改
$ git checkout HEAD .
Updated 1 path from f951a962.回退版本 reset
reset 是专门用来撤销修改、回退版本的指令支持的场景比较多多种撤销姿势所以参数组合也比较多。简单理解就是移动 master 分支、HEAD 的 “指针” 地址理解这一点就基本掌握 reset 了。
如下图
回退版本 git reset --hard v4 或 git reset --hard HEAD~2master、HEAD 会指向 v4 提交v5、v6 就被废弃了。也可以重新恢复到 v6 版本git reset --hard v6就是移动 master、HEAD 的 “指针” 地址。 reset 有三种模式对应三种参数mixed默认模式、soft、hard。三种参数的主要区别就是对工作区、暂存区的操作不同。
mixed 为默认模式参数可以省略。只有 hard 模式会重置工作区、暂存区一般用这个模式会多一点。 穿梭前用 git log 可以查看提交历史以便确定要回退到哪个版本。要重返未来用 git reflog 查看命令历史以便确定要回到未来的哪个版本。
git reset [--soft | --mixed | --hard] [HEAD]# 撤销暂存区
$ git reset
Unstaged changes after reset:
M R.md# 撤销工作区、暂存区修改
$ git reset --hard HEAD# 回退版本库到上一个版本并重置工作区、暂存
$ git reset --hard HEAD~# 回到原来的版本恢复上一步的撤销操作并重置工作区、暂存
$ git reset --hard 5f8b961# 查看所有历史提交记录
$ git reflog
ccb9937 (HEAD - main, origin/main, origin/HEAD) HEAD{0}: commit: 报表新增导入功能
8f61a60 HEAD{1}: commit: bug修复报表导出bug
4869ff7 HEAD{2}: commit: 用户报表模块开发
4b1028c HEAD{3}: commit: 财务报表模块开发完成3.撤销提交 revert
安全的撤销某一个提交记录基本原理就是生产一个新的提交用原提交的逆向操作来完成撤销操作。注意这不同于 resetreset 是回退版本revert 只是用于撤销某一次历史提交操作是比较安全的。 如上图
想撤销 v4 的修改执行 git revert v4会产生一个新的提交 v-4是 v4 的逆向操作。同时更新 maser、HEAD “指针” 位置以及工作区内容。如果已 push 则重新 push 即可。
# revert撤销指定的提交“-m”附加说明
$ git revert 41ea42 -m 撤销对***的修改
[main 967560f] Revert 1231 file changed, 1 deletion(-)4.checkout / reset / revert 总结 标题 / 指令 checkout reset revert 主要作用撤销撤销工作区、暂存区未提交修改回退版本重置工作区、暂存区撤销某一次提交撤销工作区git checkout [file]git reset HEAD [file]撤销工作区、暂存区git checkout HEAD [file]git reset --hard HEAD [file]回退版本git reset --hard [commit]安全性只针对未提交修改安全如回退了已 push 提交不安全安全