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

相关推荐
嘻嘻仙人3 天前
Ubuntu中 git上传自己的项目和二次上传一般流程
git·github
Patrick_Wilson3 天前
Squash Merge 的血缘陷阱:为什么删掉的代码又活了过来
前端·git·程序员
沉浸学习的匿名网友3 天前
什么是 .gitignore?为什么每个 Git 项目几乎都离不开它?
前端·git
深海鱼在掘金4 天前
Git 完全指南 —— 第3章:理解工作区、暂存区、版本库三个核心
git
江华森4 天前
Git 基础筑基:从原理到团队协作的全栈实战
git
JakeJiang4 天前
Git 必备命令指南:从日常高频到项目开发实战
git
叫我少年5 天前
Windows 中安装 git
git
深海鱼在掘金11 天前
Git 完全指南 —— 第1章:Git 概览与版本控制演进
git
noravinsc11 天前
关于Git Flow
git
蜜獾云11 天前
在Git中配置用户名和密码
git