GUIDE深度 · Deep dive
Git 撤销与恢复
Git 的撤销分三层:工作区、暂存区、提交历史。先判断改动在哪一层,再选 restore/reset/revert;已经推送的提交优先 revert,不要改写公共历史。
按层选命令
工作区:git restore file。
暂存区:git restore --staged file。
本地提交:git reset --soft/--mixed/--hard。
已推送:git revert。
找回误删
git reflog 找 HEAD 位置。
git reset --hard HEAD@{n} 回到那个位置。
常见问题
reset --hard 还能恢复吗?
未提交改动通常找不回;已提交的可用 reflog。先备份。
revert 和 reset 区别?
revert 生成反向提交,安全;reset 改写历史,适合本地。