git status简介

git-status手册页

NAME名称

git-status - 显示工作树的状态

SYNOPSIS概要

git status [<选项> ...] [ - ] [<pathspec>...]

DESCRIPTION描述

显示索引文件和当前HEAD提交之间存在差异的路径,工作树和索引文件之间存在差异的路径以及工作树中未由Git跟踪的路径(并且不会被gitignore(5)忽略) )。首先是你通过跑步来实现的目标git commit; 第二个和第三个是你可以通过在运行之前运行 git add 来提交的git commit

OPTIONS选项

-s

- short

以短格式输出。

-b

- branch

甚至以短格式显示分支和跟踪信息。

- porcelain

为脚本提供易于解析的格式输出。这与短输出类似,但在Git版本中保持稳定,并且不管用户配置如何。详情请参阅下文。

- long

以长格式输出输出。这是默认设置。

-v

--verbose

除了已更改的文件名称之外,还会显示正在执行的文本更改(即与输出一样git diff --cached)。如果-v指定了两次,那么还会显示尚未上演的工作树中的更改(即与输出一样git diff)。

-u [<mode>]

--untracked-files[= <mode>]

显示未跟踪的文件。

mode参数用于指定未跟踪文件的处理。它是可选的:它默认为全部,如果指定,它必须坚持选项(例如-uno,但不是-u no)。

可能的选项是:

·        no - 不显示未跟踪的文件。

·        normal - 显示未跟踪的文件和目录。

·        all - 还显示未跟踪目录中的单个文件。

如果-u不使用选项,则会显示未跟踪的文件和目录(即与指定相同normal),以帮助您避免忘记添加新创建的文件。由于需要额外的工作才能在文件系统中查找未跟踪的文件,因此在大型工作树中,此模式可能需要一些时间。考虑启用未跟踪缓存和分离指标如果支持的话(见 gitupdate-index --untracked-cachegit update-index --split-index),否则,你可以使用nogit status 回报更快,而不显示未跟踪文件。

可以使用git-config(1)中记录的status.showUntrackedFiles配置变量来更改默认值。

-- ignore-submodules[= <when>]

查找更改时忽略对子模块的更改。<when>可以是“none”,“untracked”,“dirty”或“all”,这是默认设置。如果子模块包含未跟踪或已修改的文件,或者其HEAD与超级项目中记录的提交不同,并且可用于覆盖git-config(1)或gitmodulesignore选项的任何设置,则使用“none” (5)。当使用“未跟踪”时,如果子模块仅包含未跟踪内容(但仍然针对修改内容进行扫描),则子模块不会被视为脏。使用“dirty”忽略对子模块工作树的所有更改,只显示存储在超级项目中的提交更改(这是1.7.0之前的行为)。使用“all”隐藏对子模块的所有更改(并在status.submoduleSummary设置了配置选项时禁止输出子模块摘要 )。

--ignored

也显示忽略的文件。

-z

用NUL而不是LF终止输入。--porcelain如果没有给出其他格式,这意味着输出格式。

--column [=<options>]

--no-column

在列中显示未跟踪的文件。有关选项语法,请参阅配置变量column.status。--column--no-column 不带选项相当于总是永不 分别。

OUTPUT输出

此命令的输出旨在用作提交模板注释。默认的长格式设计为人类可读,详细和描述性的。其内容和格式随时可能更改。

输出中提到的路径与其他许多Git命令不同,它是相对于当前目录而言的,如果您在子目录中工作(这是为了帮助剪切和粘贴)。请参阅下面的status.relativePaths配置选项。

Short Format短格式

在短格式中,每条路径的状态显示为

XY PATH1  - > PATH2

其中PATH1是路径HEAD,而“ -> PATH2”部分仅在PATH1对应于索引/工作树中的不同路径(即文件被重命名)时才显示。这XY是一个双字母状态码。

字段(包括->)由一个空格相互分隔。如果文件名包含空格或其他非打印字符,则该字段将以C字符串文字的方式引用:由ASCII双引号(34)字符包围,并且内部特殊字符反斜线转义。

对于具有合并冲突的路径,XY显示合并每一侧的修改状态。对于没有合并冲突的路径,X显示索引Y的状态,并显示工作树的状态。对于未跟踪的路径,XY??。其他状态代码可以解释如下:

·        ''=未修改

·        M =修改

·        A =已添加

·        D =删除

·        R =重命名

·        C =复制

·        U =更新但未被合并

被忽略的文件未列出,除非--ignored选项生效,在这种情况下XY!!

XY含义

-------------------------------------------------

          [MD]未更新

M [MD]在索引中更新

一个[MD]添加到索引

D [M]从索引中删除

R [MD]在索引中重命名

C [MD]复制到索引中

[MARC]索引和工作树匹配

[MARC] M工作树自索引以来发生了变化

[MARC] D在工作树中被删除

-------------------------------------------------

DD未合并,均被删除

AU未加入,由我们添加

UD未被合并,被他们删除

UA未合并,由他们添加

杜未被合并,被我们删除

AA没有参加,都补充说

UU未合并,均已修改

-------------------------------------------------

??未经跟踪

!!忽视

-------------------------------------------------

如果使用-b,则短格式状态前面有一行

branchname tracking info追踪信息

Porcelain Format瓷格式

瓷器格式与短格式类似,但保证不会在Git版本之间或基于用户配置的后向不兼容方式中更改。这使它成为脚本解析的理想选择。上面短格式的描述也描述了瓷器格式,但有一些例外:

1.     用户的color.status配置不受尊重; 颜色将始终关闭。

2.     用户的status.relativePaths配置不受尊重; 显示的路径将始终与存储库根目录相关。

还有一种推荐用于机器解析的备用-z格式。在这种格式下,状态字段是相同的,但其他一些事情会改变。首先,将- >选自重命名项省略和场顺序被颠倒(例如从- >到变为)。其次,NUL(ASCII 0)跟在每个文件名后面,将空格替换为字段分隔符和终止换行符(但空格仍将状态字段与第一个文件名隔开)。第三,包含特殊字符的文件名不是专门格式化的; 不执行引用或反斜杠转义。

CONFIGURATION组态

该命令荣誉color.status(或status.color - 他们意味着相同的事情,后者保持向后兼容性)和color.status.<slot>配置变量来着色其输出。

如果config变量status.relativePaths设置为false,则显示的所有路径都是相对于存储库根目录而不是当前目录。

如果status.submoduleSummary设置为非零数字或true(与-1或无限制数字相同),则将为长格式启用子模块摘要,并显示修改子模块的提交摘要(请参阅--summary-limit选项的GIT-子模块(1))。请注意,对于所有子模块,状态命令的摘要输出将被diff.ignoreSubmodules设置为全部或仅限其中的子模块submodule.<name>.ignore=all。要查看忽略子模块的摘要,可以使用--ignore-submodules = dirty命令行选项或git submodule summary命令,该命令显示类似的输出,但不遵守这些设置。


最后更新时间2015-10-19 19:46:04协调世界时

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值