查看 Git 当前工作区状态,最直接且标准的命令是 git status,它能清晰展示文件修改、暂存及分支情况。
先说结论:日常开发中,提交代码前务必运行 git status 确认工作区干净,避免遗漏文件或提交意外修改。
- 适合:所有 Git 仓库管理场景,尤其是提交前检查。
- 先看:输出中的 Changes not staged 和 Untracked files 部分。
- 建议:配合 git diff 查看具体修改内容,确认无误后再提交。
命令速用版
在终端项目目录下执行:
git status若需要简短输出,可加 -s 参数:
git status -s输出示例解析
执行 git status 后,典型输出如下:
On branch main
Your branch is up to date with 'origin/main'.
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: README.md
Untracked files:
(use "git add <file>..." to include in what will be committed)
newfile.txt
no changes added to commit (use "git add" and/or "git commit -a")关键信息解读:
- Changes not staged for commit:文件已修改但未 add,提交时不会包含。
- Changes to be committed:文件已 add,即将提交。
- Untracked files:新创建的文件,Git 尚未跟踪。
使用 git status -s 时,状态符号含义:
M:Modified,文件被修改。A:Added,新文件已暂存。??:Untracked,未跟踪的新文件。D:Deleted,文件被删除。
分步处理
1. 打开终端,进入项目根目录。
2. 输入 git status 并回车。
3. 观察输出信息,确认修改范围。
4. 根据提示操作:
- 若有未暂存修改,使用 git add 添加。
- 若有误改,需丢弃修改:
- Git 2.23.0+ 版本:使用 git restore <file>。
- 旧版本:使用 git checkout -- <file>。
怎么验证是否生效
再次运行 git status,若输出包含 nothing to commit, working tree clean,则表示工作区已干净,所有修改均已提交或暂存状态符合预期。
常见坑
- 忽略未跟踪文件:新创建的文件若不 add,git status 会显示为 Untracked,提交时不会包含。
- 混淆暂存与工作区:修改了文件但没 add,状态显示为 Changes not staged,此时提交不会包含该修改。
- 远程状态误解:git status 显示的分支同步状态(如 Your branch is up to date)是基于本地记录的远程引用,若需最新状态需先执行 git fetch。
- 版本兼容性:git restore 命令仅在 Git 2.23.0 及以上版本可用,旧版本用户请使用 git checkout。