git status

文章目录

  • 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 的习惯,避免误提交或遗漏文件。


参考文献

Git - git-status Documentation

相关推荐
挖掘狂人2 天前
Git 从 0 到 1:用一个小项目走完 add / commit / reset / merge / rebase / push
git·后端·github
codigger2 天前
Git 三区域模型:把 add、commit、reset、merge 一次讲透
git·github·编程·编程语言
水饺编程2 天前
第1章:开发环境搭建,在 Windows 中安装 Git
linux·c语言·汇编·git·ubuntu
idanzk2 天前
Git 推送 GitHub 报 SSL_READ /src refspec main 不匹配 完整踩坑记录
git·github·ssl
星恒随风2 天前
Linux开发工具详解(二):Git版本控制、GitHub协作与GDB调试实战
linux·笔记·git·学习·github
寺中人2 天前
Xshell 完全入门指南:从安装到实战,远程连接+文件传输+会话管理全拆解
git·ssh·github·php·远程连接·xshell·运维工具
酬谢神明则必安2 天前
git学习记录01
linux·git·学习
lingchen19063 天前
版本控制 Git源代码项目管理
git
虫无涯3 天前
Coverity 如何结合 GJB8114-2013使用?
git·单元测试·嵌入式测试·coverity·静态扫描
喵本喵叁肆3 天前
Git 深度解读:从对象模型到分支指针,把版本控制的内核讲透
git