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 中常用的命令之一,通过查看当前工作目录下文件的状态,能够更好地管理版本控制。