Git误操作急救手册(7)Git核心概念回顾:工作区、暂存区、版本库昨天隔壁组的小王跑过来,满头大汗地问我:“哥,我改了一下午的驱动代码,git status一看全红了,手一抖直接git checkout .,现在全没了,能救吗?”我叹了口气,打开终端敲了几行命令,用git fsck找回了他的修改。他瞪大眼睛问:“这怎么做到的?”我说:“你得先搞清楚Git到底把你的代码放在哪儿了。”很多工程师用Git好几年,每天add、commit、push三连,但一旦遇到文件丢失、冲突混乱或是误删分支,立刻就慌了手脚。根本原因是对Git的三个核心区域——工作区、暂存区、版本库——没有形成肌肉记忆般的理解。今天咱们就抛开那些花哨的命令,回到最根本的地方。工作区:你眼皮底下的代码工作区就是你当前看到的项目目录,所有你正在编辑的文件都在这里。用ls命令列出来的,用编辑器打开的,都是工作区的内容。这里最容易踩坑的是:工作区的改动Git可能根本不知道。比如你修改了main.c,如果没有执行git add,Git只会通过git status提示你有文件被修改了,但这些修改并没有进入Git的“保护范围”。这时候如果你执行git checkout -- main.c,修改就真的丢了——因为Git只是用版本库里的旧版本覆盖了你的工作区文件。# 查看工作区哪些文件被改过(红色显示)gitstatus# 危险操作:用暂存区