status
TIP
git status
是一个用于检查git存储库状态的命令。它显示了自上次提交以来对存储库所做的更改以及Git未跟踪的文件。
git状态的常见问题包括:无法提交更改、看不到存储库中的所有更改以及看不到未跟踪的文件。
这些问题的解决方案包括:在git status
命令中使用-u
选项,使用--short
选项仅显示更改,以及使用-untertracked files
选项显示未跟踪的文件。
运行Git status命令时,确保您处于正确的分支非常重要,因为这可能会影响输出。
显示索引文件和当前HEAD提交有差异的路径,工作树和索引文件有差异的路径,以及工作树中不被git追踪的路径
语法
- git status [options]
选项
- -s,--short
-
给出短式的输出。
- -b,--branch
-
即使是短格式,也能显示分支和跟踪信息。
- --show-stash
-
显示当前藏匿的作品数量。
- --porcelain[=<version>]
-
以易于脚本解析的格式给出输出。这与
-s
类似,但在Git的各个版本中,无论用户如何配置,都会保持稳定 -
version
参数用于指定格式版本。这是可选的,默认为原始版本 v1 格式。 - --long
-
提供长格式的输出。这是默认的。
- -v,--verbose
-
除了已更改文件的名称外,还显示已暂存的文本更改(即,例如
git diff --cached
的输出)。如果两次指定了-v
,那么还将显示尚未上演的工作树中的更改(即,类似于git diff
的输出)。 - -u[<mode>],--untracked-files[=<mode>]
-
显示未被跟踪的文件。
-
mode参数用于指定未跟踪文件的处理。它是可选的:默认为
all
,并且如果指定,则必须坚持使用该选项(例如,-uno
,而不是-u
no
)。 -
可能的选择是:
-
no
-不显示未跟踪的文件。
-
normal
-显示未跟踪的文件和目录。
-
all
-还显示未跟踪目录中的单个文件。
-
如果不使用
-u
选项,则会显示未跟踪的文件和目录(即与指定normal
相同),以帮助您避免忘记添加新创建的文件。因为在文件系统中查找未跟踪的文件需要额外的工作,所以此模式在大型工作树中可能需要一些时间。 - --ignore-submodules[=<when>]
-
查找更改时,请忽略对子模块的更改。
-
<when>
可以是none
,untracked
,dirty
或all
,这是默认值。 -
none
,将考虑修改的子模块时,它或者包含未跟踪或修改的文件或它的头的不同之处的提交记录在上层项目和可用于覆盖任何设置的 ignore 在选项。
-
untracked
,子模块仅包含未跟踪的内容(但仍会对其进行扫描以查找修改的内容),因此不会被视为脏模块。
-
dirty
,将忽略对子模块工作树的所有更改,仅显示对存储在超级项目中的提交的更改(这是1.7.0之前的行为)。
-
all
,将隐藏status.submoduleSummary
模块的所有更改(并在配置选项status.submoduleSummary
设置后抑制子模块摘要的输出)。
- --ignored[=<mode>]
-
也显示被忽略的文件。
-
mode参数用于指定忽略文件的处理。它是可选的:默认为
traditional
。 -
可能的选择是:
-
traditional
-显示被忽略的文件和目录,除非指定了--untracked-files=all
,在这种情况下,将显示被忽略目录中的单个文件。
-
no
-不显示忽略的文件。
-
matching
-显示与忽略模式匹配的被忽略文件和目录。
-
当
matching
指定模式,则明确匹配忽略图案路径被示出。如果目录匹配忽略模式,则显示该目录,但不显示忽略目录中包含的路径。如果目录与忽略模式不匹配,但是所有内容都将被忽略,则不会显示目录,但是会显示所有内容。 - -z
-
用NUL(而不是LF)终止条目。如果未指定其他格式,则表示
--porcelain=v1
输出格式。 - --column[=<options>],--no-column
-
在列中显示未跟踪的文件。没有选项的
--column
和--no-column
分别相当于always
和never
。 - --ahead-behind,--no-ahead-behind
-
显示或不显示分支相对于其上游分支的详细超前/落后计数。默认为 “true”。
- --renames,--no-renames
-
无论用户配置如何,都可以打开/关闭重命名检测
- --find-renames[=<n>]
-
打开重命名检测,可以选择设置相似性阈值