正在加载内容…
Git 撤销与回退
350 字
2 分钟
Git 撤销与回退
本文梳理单人Git撤销与回退,分工作区、暂存区、提交三层处理,说明reset三模式差异,提示已推送用revert,误操作可用reflog找回。
单人 Git 撤销与回退
撤销工作区改动
git restore <文件> # 丢弃工作区某文件改动git restore . # 丢弃所有工作区改动git checkout -- <文件> # 老写法,等价撤销暂存区
git restore --staged <文件> # 把文件从暂存区撤回工作区git reset HEAD <文件> # 老写法回退提交 reset
reset 有三种模式,区别在于”回退时动哪些区域”:
flowchart LR
A[soft 只移指针] --> E[暂存区与工作区不变]
B[mixed 移指针+暂存区] --> F[改动回到工作区]
C[hard 全部回退] --> G[改动彻底丢弃]
git reset --soft HEAD~1 # 撤销提交,改动留在暂存区git reset --mixed HEAD~1 # 默认:撤销提交,改动回到工作区git reset --hard HEAD~1 # 危险:彻底丢弃最近一次提交的改动revert 反向提交
revert 不删历史,而是生成一个”相反”的新提交,适合已经推送到远程的情况:
git revert HEADreflog 后悔药
误操作后,reflog 记录了所有 HEAD 的移动,能找回”丢失”的提交:
git refloggit reset --hard HEAD@{2} # 回到 reflog 里记录的某个状态Tips
--hard会丢代码,慎用;安全回退优先--soft或--mixed。- 撤销分三层:工作区用 restore、暂存区用 restore —staged、提交用 reset/revert。
- reflog 是最后的后悔药,误操作后先用它找回”丢失”的提交。
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
相关文章 智能推荐
1
Git 远程仓库与标签
Git 介绍单人Git远程仓库操作与标签:关联、克隆、推送、拉取和标签创建及推送,提示单人用pull即可,多人协作用fetch。
2
Git 基础操作
Git 本文介绍单人 Git 基础操作:工作区、暂存区、版本库三区流转,并说明 init、status、add、commit、log、diff 的用法,最小闭环为改代码、add、commit。
3
Git 分支管理
Git 本文介绍单人 Git 分支管理,涵盖创建切换、合并、冲突解决;快进与三方合并有差异,冲突需手改后 add 再 commit。
4
Git 团队协作心得
Git 本文总结Git团队协作流程:先fetch再合并、使用短命功能分支、通过PR审查合并并及时清理,强调分支隔离与冲突预防。
5
不再洄游,而是深潜 & grillme之产品经验谈
领域思考 作者反思AI时代程序员角色转型:从追求技术广度的洄游,转向在机器人、自动驾驶等交叉领域深耕产品方案,并以grillme为例说明轻量skill依附生态解决痛点的产品设计思路。
随机文章 随机推荐
评论区
正在加载 GitHub 评论…