git status

介绍
git status 是 Git 的一个命令,用于查看当前工作目录的状态。通过运行 git status 命令,我们可以获得有关文件和文件夹的一些关键信息,以便更好地管理版本控制。
命令语法
git status [-s|--short] [-b|--branch] [--untracked-files=<option>] [--ignored] [--] [<pathspec>…]
命令说明
git status 命令主要有两个功能:
- 显示跟踪文件的状态(tracked files)
- 显示未跟踪文件的状态(untracked files)
跟踪文件的状态
Git 跟踪文件的状态分为以下几种:
- 已修改(modified):文件已被修改,但还未提交;
- 已暂存(staged):文件已添加到暂存区,准备提交;
- 没有修改(unmodified):文件没有进行修改。
当运行 git status 命令时,会显示当前分支下已修改和已暂存的文件,以及是否有未跟踪的文件。下面是一个示例输出:
On branch main
Your branch is up to date with 'origin/main'.
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: readme.txt
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: file1.txt
Untracked files:
(use "git add <file>..." to include in what will be committed)
file2.txt
可以看到,上述示例中有一个已暂存的新文件 readme.txt,一个已修改但未暂存的文件 file1.txt,以及一个未跟踪的文件 file2.txt。
未跟踪文件的状态
未跟踪的文件是指工作目录中 Git 仓库未跟踪的文件。这些文件未被添加到 Git 的版本控制中,因此 Git 不会自动跟踪其更改。
当运行 git status 命令时,会显示未跟踪文件的状态。下面是一个示例输出:
On branch main
Your branch is up to date with 'origin/main'.
nothing added to commit but untracked files present (use "git add" to track)
可以看到,在这个示例中,没有已修改或已暂存的文件,只有未跟踪的文件。提示信息告诉我们可以使用 git add 命令来跟踪这些文件。
常用参数
-s 或 --short
使用 -s 或 --short 参数可以以简洁的方式显示输出,只显示文件名,并用字母表示状态。
git status -s
示例输出:
M file1.txt
MM file2.txt
A file3.txt
上述示例中,M 表示已修改但未暂存,MM 表示已修改且已暂存,A 表示新添加的文件。
-b 或 --branch
使用 -b 或 --branch 参数可以在输出中显示当前分支的名称。
git status -b
示例输出:
On branch main
Your branch is up to date with 'origin/main'.
上述示例中,显示了当前分支名称,并提供了分支状态信息。
--untracked-files=<option>
使用 --untracked-files=<option> 参数可以控制是否显示未跟踪文件的状态。
可选的 <option> 参数有三种:
no:不显示未跟踪文件的状态;normal:显示未跟踪文件的状态;all:显示未跟踪文件的状态,并包括忽略的文件。
git status --untracked-files=normal
示例输出:
On branch main
Your branch is up to date with 'origin/main'.
Untracked files:
(use "git add <file>..." to include in what will be committed)
file1.txt
file2.txt
上述示例中,显示了未跟踪文件的状态,并指示如何将这些文件包含到提交中。
--ignored
使用 --ignored 参数可以显示被 Git 忽略的文件的状态。
git status --ignored
示例输出:
On branch main
Your branch is up to date with 'origin/main'.
Ignored files:
(use "--no-ignore" to show)
ignored_file.txt
上述示例中,显示了被 Git 忽略的文件的状态。
结束语
git status 是 Git 中常用的命令之一,通过查看当前工作目录下文件的状态,能够更好地管理版本控制。
极客笔记