Git三区(工作区、暂存区、版本库)深度解析
昨天团队里有个小伙子跑来找我,说他的代码改了一下午,git status一看满屏红色,想回退到早上版本却手滑执行了git reset --hard,结果半天的工作全没了。他瘫在椅子上问我:“还有救吗?” 我让他先别急,打开.git目录看看。这个故事我们稍后再说,但问题的根源在于他没真正理解 Git 最核心的三个区域:工作区、暂存区、版本库。
从一次误操作说起
很多人把 Git 当成一个“备份工具”,改完代码直接commit再push,直到某天手滑误删了文件,或者想找回某个特定修改时,才发现自己根本不了解数据到底存在哪、怎么流转。Git 的强大正来自于它清晰的三区设计,但这也是新手最容易栽跟头的地方。
工作区:你的沙盒
工作区就是你眼睛能看到的项目目录,你在 IDE 里敲的每一行代码、新增的每个文件都在这里。它就像你的私人沙盒,怎么折腾都不会直接影响团队代码——除非你主动提交。
但工作区的改动是“脆弱”的。直接删文件、覆盖保存,这些操作 Git 不会自动帮你记录。我见过有人以为git diff能看出所有改动,结果发现重命名的文件被识别为“删除旧文件+新增新文件”,这就是工作区与 Git 跟踪逻辑的脱节。
# 查看