如何用Git CLI实现GitHub Desktop的Discard All Changes(不使用git stash)
Git CLI实现GitHub Desktop「Discard All Changes」功能的方法
GitHub Desktop的「Discard All Changes(丢弃所有更改)」功能,本质是不可逆清除当前分支所有未提交的修改,不使用git stash的前提下,执行以下两条命令即可实现完全一致的效果:
- 第一步:重置所有已被Git跟踪的文件状态到当前最新提交(HEAD),同时清空暂存区的所有内容
git reset --hard HEAD该操作会直接删除所有已跟踪文件上的未提交修改,执行前请确认不需要保留相关内容
- 第二步:删除所有未被Git跟踪的普通文件和空目录
git clean -fd参数说明:
-f表示强制删除未跟踪文件,-d表示同步删除未跟踪的目录;默认不会删除.gitignore规则中已忽略的文件,如果需要连忽略文件一同清理,可以改用git clean -fdx
特殊场景适配
如果当前仓库包含Git子模块,需要同步丢弃所有子模块内的未提交修改,调整命令如下即可:
git reset --hard HEAD --recurse-submodules git clean -fd --recurse-submodules
内容的提问来源于stack exchange,提问作者Riveascore
相关产品推荐
相关产品推荐

