Git 状态



git status 命令显示工作目录的状态。

git status 的输出显示 HEAD 在任何给定时间的位置(在分支提交上)。它提供以下信息

  • 未跟踪文件 - 显示 Git 未跟踪但位于工作目录中的文件。

  • 待提交的更改 - git status 命令显示更改是否已通过暂存(添加到索引)准备用于即将到来的提交。

  • 未暂存的更改 - 对已修改但尚未暂存的文件所做的更改。

  • 它提供有关当前本地分支与其远程等效分支之间关系的信息,包括领先或落后多少。

  • 分支信息 - git status 命令显示当前分支及其跟踪状态。

  • 显示冲突 - 当存在合并冲突时,git status 命令会显示哪些文件存在冲突。

  • 路径差异 - git status 显示当前 HEAD 提交和索引文件之间不同的路径。

  • 它显示索引文件和工作树之间存在差异的路径,表示可以使用 git add 暂存的更改。

  • 此外,只要它们未被 .gitignore 忽略或 Git 跟踪,该命令就会显示可以使用 git add 添加,然后暂存和提交的工作树路径。

语法

以下是 git status 命令的语法

git status

选项

git status 命令具有以下选项

简短输出

Git 的 -s--short 选项更改某些命令(如 git status)的输出,以提供简短的、截断的格式,以压缩的方式突出显示重要信息。

git status -s

git status --short

分支信息

Git 的 -b--branch 选项通过添加有关活动分支及其跟踪状态的详细信息来改进简短格式的输出,从而为简洁的显示添加更多上下文。

git status -b

git status --branch

瓷器输出

Git 提供了对用户友好的命令和输出,这些命令和输出专为最终用户设计。git status --porcelain 命令提供简洁易于解析的输出。

git status --porcelain

显示暂存的更改

Git --show-stash 选项显示当前存储在存储区中的条目数量,显示有多少组更改已暂时存储。

git status --show-stash

长输出

当在 Git 中使用 --long 选项运行命令时,它会自动生成详细且描述性的输出。

git status --long

详细输出

Git 的 -v--verbose 选项显示已编辑并准备提交的文件名,以及暂存的文本更改。

当使用两次(-vv)时,它还会显示工作树中尚未暂存的更改,类似于 git diff --cachedgit diff 的输出。

git status --v

git status --verbose

控制未跟踪文件显示

可以使用 --untracked-files 选项控制未跟踪文件。可以使用该命令的不同模式如下

no - 不会显示任何未跟踪的文件。

git status --untracked-files=no

normal - 这是 --untracked-files 的默认模式。

git status --untracked-files=normal

all - 显示所有未跟踪的文件。

git status --untracked-files=all

忽略子模块

--ignore-submodules[=<when>]

在检查子模块中的更改时,可以选择包含的详细信息级别。

选择如下

  • none- 如果子模块包含未跟踪或已更新的文件,或者如果其 HEAD 偏离了父项目的已记录提交,则认为它已更改。

  • untracked- 如果子模块仅包含未跟踪的文件,它仍然会检查更新,但会忽略它们。

  • dirty- 仅显示对父项目中注册的提交的更新,忽略对子模块的工作树所做的任何更改。

  • all- 保持输出中的子模块摘要隐藏,并隐藏所有子模块修改。这是默认值。

git status --ignore-submodules=all

显示忽略的文件

--ignored[=<mode>]

可以使用 --ignored[=<mode>] 选项调整忽略文件的显示。可选 mode 参数的默认值为 traditional

我们可以使用的模式如下

  • traditional - 除非使用 --untracked-files=all,否则会显示忽略的文件和目录。

    在这种情况下,会显示忽略目录内的忽略文件。

  • no - 没有文件显示为已忽略。

  • matching - 显示与忽略模式匹配的忽略目录和文件。

    如果目录匹配,则会显示它,但如果其内容被忽略,则不会显示。

  • 如果其所有内容都被忽略,即使目录本身未被忽略,也会显示目录的内容。

git status --ignored

选项组合

可以同时使用多个选项,以便您可以根据需要自定义输出。例如,您可以使用 -s-b 获取包含分支信息的简短状态。

git status -s -b

总而言之,git status 命令可以帮助您了解已进行哪些更改,哪些需要暂存或提交,以及存储库的总体状态。

广告