文章目录
- 1.简介
- 2.格式
- [3. 选项](#3. 选项)
- [4. 示例](#4. 示例)
-
- [4.1 完整格式输出](#4.1 完整格式输出)
- [4.2 短格式输出](#4.2 短格式输出)
- [4.3 显示被忽略的文件](#4.3 显示被忽略的文件)
- [5. 其他](#5. 其他)
-
- [5.1 输出状态符号(短格式)](#5.1 输出状态符号(短格式))
- [5.2 常用别名设置](#5.2 常用别名设置)
- [6. 小结](#6. 小结)
- 参考文献
1.简介
git status 用于查看当前工作区(Working Directory)和暂存区(Staging Area)的状态。
git status 是 Git 中最常用的命令之一,它能告诉你哪些文件被修改了、哪些文件被暂存了、哪些文件未被跟踪。
2.格式
bash
git status [<options>] [--] [<pathspec>...]
3. 选项
bash
-s, --short
短格式输出,更简洁
-sb
短格式 + 显示分支信息
--ignored
同时显示被 .gitignore 忽略的文件
-v, --verbose
显示更详细的信息(包括变更内容)
--porcelain
机器可读的稳定输出格式,适合脚本解析。类似于简短输出,但会在不同 Git 版本之间保持稳定,并且不受用户配置的影响。
4. 示例
4.1 完整格式输出
bash
$ git status
On branch main
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: README.md
new file: main.go
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: go.mod
Untracked files:
(use "git add <file>..." to include in what will be committed)
utils/
4.2 短格式输出
bash
$ git status -s
M README.md
A main.go
M go.mod
?? utils/
4.3 显示被忽略的文件
bash
$ git status --ignored
On branch main
...
Ignored files:
(use "git add -f <file>..." to include in what will be committed)
.idea/
node_modules/
5. 其他
5.1 输出状态符号(短格式)
| 符号 | 含义 | 说明 |
|---|---|---|
?? |
未跟踪 | 新文件,从未被 Git 跟踪过 |
A |
已暂存(新增) | 文件已被 git add,暂存区有新文件 |
M |
已修改 | 文件在工作区被修改,但尚未暂存 |
MM |
修改并暂存后又修改 | 文件既有暂存的修改,又有新的工作区修改 |
D |
已删除 | 文件被删除,但尚未暂存 |
R |
重命名 | 文件被重命名 |
C |
复制 | 文件被复制 |
AM |
已暂存后又修改 | 与 MM 类似 |
?? |
未跟踪 | 新文件,未被 Git 跟踪 |
5.2 常用别名设置
bash
# 设置全局别名
git config --global alias.st status
git config --global alias.sts "status -s"
git config --global alias.stsb "status -sb"
git config --global alias.sti "status --ignored"
# 使用别名
git st
git sts
git stsb
git sti
6. 小结
| 需求 | 命令 | 说明 |
|---|---|---|
| 详细状态 | git status |
新手友好,信息完整 |
| 简洁状态 | git status -s |
熟练用户,输出紧凑 |
| 查看分支+简洁状态 | git status -sb |
兼顾分支信息和简洁输出 |
| 查看被忽略的文件 | git status --ignored |
排查 .gitignore 问题 |
| 机器可读格式 | git status --porcelain |
适合脚本自动化处理 |
git status 是你的 Git"仪表盘",随时告诉你工作区和暂存区发生了什么。养成提交前执行 git status 的习惯,避免误提交或遗漏文件。