Git 怎么回退到某个版本?
代码出了问题,想回到之前某个正常的版本
解决方案
查看历史找到目标提交 推荐
# 查看提交历史 git log --oneline -20 # 输出示例: # abc1234 feat: 添加支付功能 # def5678 fix: 修复登录bug ← 想回到这里 # ghi9012 refactor: 重构用户模块
先找到想回退到的提交 hash。
适用场景:第一步:确定目标
临时查看旧版本(不修改历史) 推荐
git checkout def5678
进入 detached HEAD 状态查看旧版本。用 git switch - 回到原分支。
适用场景:只想看看旧版本的代码,不想改任何东西
回退并保留修改记录(推荐) 推荐
git revert abc1234
创建新提交来撤销 abc1234 的变更。历史不变,安全。
适用场景:已推送到远程,需要安全回退
强制回退(改变历史)
git reset --hard def5678 git push --force-with-lease
HEAD 直接移到目标提交,之后的提交全部丢失。需要 force push。
适用场景:本地分支或个人分支,确定不需要后续提交
注意事项
reset --hard 会丢失目标提交之后的所有变更
对公共分支用 revert 而不是 reset
force push 前确认没有其他人基于这些提交工作