Command Reference

git status 教程

讲清 git status 如何查看工作区、暂存区和分支状态,以及它为什么是日常最应该频繁使用的命令之一。

适合谁看
  • 已经会基本提交和分支操作的开发者
  • 想理解命令边界与风险的人
前置知识
  • 知道工作区、暂存区、提交的基本关系
  • 能读懂 `git status` 和简单历史图
常见风险
  • 误把本地整理命令用到共享历史
  • 在没确认恢复路径前直接继续改写历史

一句话理解

git status 是你了解当前仓库状态的第一入口,用来查看哪些文件被修改、哪些已经暂存、当前分支是否领先或落后。

为什么它很重要

很多 Git 误操作不是因为命令不会,而是因为操作前没有先看一眼当前状态。

最常见输出内容

  • 当前分支名
  • 是否有未暂存改动
  • 是否有已暂存改动
  • 是否存在未跟踪文件
  • 是否和上游分支有差异

基本用法

git status

紧凑模式

git status --short

这更适合频繁查看。

一个好习惯

在这些操作前先跑一次 git status

  • commit
  • pull
  • rebase
  • reset

常见误区

误区 1:status 只是给新手用的

不是。它对经验丰富的开发者同样重要,因为它是最低风险但最高价值的检查命令之一。

这条命令在流程里解决什么问题

从流程位置看,git status 更像“先观察、再决定”的命令。它通常不直接改写历史,而是帮助你确认工作区、暂存区、引用或提交对象当前到底处于什么状态。

典型用例

  • 在执行任何操作之前,先用 git status 确认工作区和暂存区的当前状态。
  • git status 放进代码评审、排障和复盘流程,帮助团队对齐上下文。
  • 当你需要解释“现在仓库为什么会这样”时,让 git status 先输出可验证的信息。

图例理解

观察类命令的作用位置这类命令主要读取仓库状态并输出信息,重点在于知道自己观察的是哪一层。
观察对象
工作区暂存区提交历史引用
产出
控制台信息差异上下文决策依据
如果输出看起来“不对”,优先排查的是观察范围,而不是命令本身有没有生效。

特殊情况与边界

  • 大多数观察命令本身不改历史,但它看到的结果会受 HEAD、路径、提交范围或引用选择影响。
  • 如果 git status 的输出和预期不一致,先确认你看的到底是工作区、索引、当前分支,还是某个历史提交。
  • git statusgit diffgit loggit show 组合使用,通常比单独看一个输出更稳。