You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

误修改master分支后如何丢弃变更并恢复至工作树干净状态?

解决误在master分支修改后恢复工作区干净的方法

嗨,这种手滑操作太常见了,别担心,根据你的变更所处的不同阶段,有对应的解决方案,都能让master回到原有状态,最终得到「working tree clean」的提示:

情况1:变更还没执行git add(未暂存)

如果你的修改还没加到暂存区,直接执行以下命令就能丢弃所有工作区的变更:

# Git 2.23 版本之前常用的命令
git checkout .

# Git 2.23+ 推荐使用的更清晰的命令
git restore .

如果只想丢弃某个特定文件的变更,把.换成对应的文件名就行,比如git restore README.md。

情况2:变更已经执行git add(已暂存)

这时候需要先把暂存区的内容撤回到工作区,再丢弃工作区的变更:

# 步骤1:撤销暂存(老版本命令)
git reset HEAD .
# 步骤2:丢弃工作区变更
git checkout .

# 或者用Git 2.23+的新命令,更直观
git restore --staged .  # 撤销暂存
git restore .           # 丢弃工作区变更

情况3:已经提交了commit(未推送到远程master)

如果已经把变更commit到本地master了,但还没推送到远程,用这个命令直接回退到上一个干净的commit状态:

git reset --hard HEAD~1

⚠️ 注意:--hard参数会彻底丢弃这次commit的所有内容,执行前一定要确认这些修改完全不需要了,因为这个操作是不可逆的!

执行完对应命令后,再输入git status,就能看到系统提示「working tree clean」啦~

内容的提问来源于stack exchange,提问作者Robin Khatri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 09:01:40