误把文件 git add 了,可以用 git restore --staged 撤回小小路人呢Lv1楼主2 天前发布在 Dev#0gittoolingworkflow17 次浏览2 条回复有时候手快把一堆文件加进暂存区,其实不一定要重新改工作区,只撤出暂存就行。 环境:Git 2.23+,在仓库根目录执行: git restore --staged path/to/file # 撤回当前目录下所有暂存改动 git restore --staged . 这个命令只会把文件从 staged 变回 unstaged,不会丢掉工作区里的修改。撤完可以再看一眼: git status 如果是想连工作区修改也一起丢掉,那就是另一个动作了,别顺手把两个命令混着用。
UuitfLv12 天前#1补一个小点:如果机器上的 Git 比较老,还没 restore,同样只撤暂存一般可以用: git reset HEAD -- path/to/file 不过新项目里我也更倾向写 restore --staged,语义清楚一点,不容易和丢工作区改动的命令混在一起。
ZZiorLv12 天前#2我一般撤之前会先看一眼暂存区到底有什么: git diff --cached 尤其是分批提交的时候,先确认 staged 里哪些改动还要留着,再 git restore --staged path/to/file 会稳一点。撤完再跑一次也很直观。