Menu
CoddyTech

Git Status

最后更新

git status 显示工作区的状态:哪些文件已暂存、准备进入下一次提交,哪些已修改但尚未暂存,哪些还没有被跟踪。它还会告诉你当前在哪个分支,以及领先或落后上游多少个提交。想了解当前情况时,这是你最常运行的命令。

在终端在线编辑器中试试这些命令:浏览器里就是真正的 shell,无需安装。

git status 在提交之前把文件分成已暂存 (A)、已修改 (M) 和未跟踪 (??) 三类。

语法

命令作用
git status工作区和分支的完整状态
git status -s简短格式,每个文件一行
git status -sb简短格式,外加分支信息行
git status --ignored同时显示被 .gitignore 忽略的文件

读懂简短格式

在 git status -s 中,两列分别表示已暂存 / 未暂存。

标记含义
M已修改
A已添加(已暂存的新文件)
D已删除
??未跟踪

git status 常见问题

git status 显示什么?

它列出已暂存、准备进入下一次提交的文件,已修改但尚未暂存的文件,以及 Git 完全没有跟踪的文件(未跟踪)。它还会显示当前分支,以及该分支是领先还是落后于远程分支。它不会改动任何东西,只用来查看信息。

git status 和 git status -s 有什么区别?
单纯的 git status 会按状态分组,给出详细的、带说明的列表。git status -s(short)每个文件只输出紧凑的一行,带两列状态:左列表示暂存区,右列表示工作区。熟悉这些标记之后,浏览起来更快。
git status -s 的两列怎么看?
第一列是文件的暂存状态,第二列是它的未暂存(工作区)状态。例如 M 表示已暂存的修改, M 表示已修改但未暂存,MM 表示两者都有,?? 表示未跟踪。A 是新暂存的文件,D 是删除。
为什么 git status 不显示新文件的改动?
全新的文件会显示为未跟踪(??):Git 还没有跟踪它,所以把整个文件报告为新文件,而不是显示差异。执行 git add 之后,status 会把它显示为已暂存。git commit -a 也不会包含未跟踪的文件。
可以在线练习吗?
可以。打开终端在线编辑器,就能在浏览器里的真实 shell 中运行 git status,无需安装。Coddy 的免费互动 Git 课程也会一步步教你日常的 Git 工作流程。
Coddy 编程语言插图

在 Coddy 学习 Git

开始