Git Status
最后更新
git status 显示工作区的状态:哪些文件已暂存、准备进入下一次提交,哪些已修改但尚未暂存,哪些还没有被跟踪。它还会告诉你当前在哪个分支,以及领先或落后上游多少个提交。想了解当前情况时,这是你最常运行的命令。
在终端在线编辑器中试试这些命令:浏览器里就是真正的 shell,无需安装。
语法
| 命令 | 作用 |
|---|---|
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 工作流程。