git status
用 git status 检查仓库状态——你的 Git 仪表盘。
你将学到
- 如何阅读 git status 输出
- 三个部分:已暂存、未暂存和未追踪
- 用 git status -s 获取紧凑视图
- 为什么应该频繁运行 git status
概念讲解
git status 做什么
git status 是最常用的 Git 命令。它告诉你仓库的当前状态:什么变了、什么暂存了、什么未追踪。频繁运行它——在每条其他命令前后。
git status
阅读输出
输出有三个部分:
On branch main
Changes to be committed: ← 已暂存(将在下次提交中)
modified: index.html
Changes not staged for commit: ← 未暂存(已修改但未 add)
modified: style.css
Untracked files: ← 未追踪(Git 未追踪这些)
new-file.js
- Changes to be committed——暂存区中的文件。将包含在下次
git commit。 - Changes not staged for commit——已追踪但修改后未
git add的文件。 - Untracked files——Git 从未见过的新文件。用
git add开始追踪。
短格式
快速紧凑视图用 git status -s(或 --short):
git status -s
M index.html ← 第一列 M = 已暂存修改
M style.css ← 第二列 M = 未暂存修改
?? new-file.js ← ?? = 未追踪
A added-file.js ← A = 已暂存新增
D deleted-file.js ← D = 已暂存删除
第一列显示已暂存状态,第二列显示未暂存状态。一旦你会读这个,就会偏爱它胜过长格式。
git status 为何必不可少
git status 防止错误:
- 提交前——确保提交的是你以为的内容
- 克隆后——确认在哪个分支
- 分支前——确保工作树干净
- 合并后——检查冲突
如果 git status 说 nothing to commit, working tree clean,表示没有未提交变更——你可以安全地分支、拉取或推送。
有用标志
git status # 完整输出
git status -s # 短紧凑输出
git status --branch # 包含分支追踪信息
git status --ignored # 也显示被忽略的文件
git status -uno # 隐藏未追踪文件示例代码
# 做一些变更以看到不同状态
echo "new content" >> README.md # 修改被追踪文件
echo "body { color: red; }" >> style.css # 修改另一个被追踪文件
echo "console.log('new');" > new-feature.js # 创建新文件
# 完整状态输出——三个部分
git status
# 短状态——每文件一行的紧凑格式
git status -s
# 暂存一个文件看状态变化
git add README.md
git status -s
# README.md 现在显示 'M '(已暂存)而非 ' M'(未暂存)
# 暂存所有再看
git add .
git status -s
# 所有文件现在都在已暂存列
# 提交并验证干净树
git commit -m "Add new feature and update styles"
git status
# "nothing to commit, working tree clean"
# 查看分支追踪信息
git status -b
创建变更,然后用 git status 和 git status -s 看文件如何在未追踪、未暂存、已暂存状态间移动。短格式值得记住——这是检查仓库最快的方式。
动手试一试
- Code Diff
比较版本——git status 告诉你改了什么,diff 展示怎么改的。
- File Hash Checksum
Git 用内容哈希检测变更——看看哈希如何工作。
常见错误
错误写法
不运行 git status 就提交了错误的文件
正确做法
提交前始终运行 git status 看到底会提交什么。用 git status -s 快速检查。这能防止意外提交调试代码或敏感文件。
错误写法
忽略本应提交的未追踪文件
正确做法
未追踪文件(标记为 ??)容易漏掉。运行 git status 查看 'Untracked files' 部分。该入库的文件 git add;不该的加到 .gitignore。
相关资源
相关速查表
- Git Cheatsheet
git status 选项与输出解读。
练习 git status
1 个练习
查阅不认识的术语
新手友好的术语表用大白话解释编程术语——变量、函数、DOM、Promise 等等。
动手做项目
通过引导式项目应用所学,含起始代码与解决方案。
解读错误信息
用大白话解释常见错误——什么意思、为什么发生、如何修复。