git status检查当前工作树文件状态 (五)

使用git status 显示工作树的状态

1 git status 概要

git status [<options>...] [--] [<pathspec>...]

显示索引中内容和HEAD的差异,工作树和索引文件的差异,工作树中没有被Git忽略的未跟踪文件。

  • [-s, --short]
    以简短格式显示:
    git status -s

  • [-b, --branch]
    显示分支信息:
    git status -b

  • [--show-stash]
    显示当前暂存的条目数量。

  • [--porcelain[=<version>]]
    为脚本提供易于解析的格式,version用于指定格式版本,默认是原始版本v1格式。

  • [--long]
    长输出格式,这是默认的。

  • [-v, --verbose]
    除了显示更改的文件名外,对于索引中的内容还会显示文本内容的更改,如果v被指定了两次(-vv),则还会显示未添加到索引中文件的更改。

  • [-u[<mode>], --untracked-files[=<mode>]]
    显示未跟踪的文件。
    <mode>用于指定如何处理未跟踪的文件,如果使用了此选项则默认是all,下面是可能的选项:

    • no - 显示未跟踪文件。
    • normal - 显示未跟踪文件和目录。
    • all - 也显示未跟踪目录中的单个文件。

    当没有使用-u选项时,未跟踪文件和目录被现实和normal模式相同。
    可以使用配置变量status.showUntrackedFiles来改变默认的<mode>

  • [--ignore-submodules[=<when>]]
    当查看更改时,忽略子模块的更改,<when>可以是"none","untracked","dirty"或者"all",all是默认值。
    当子模块包含未跟踪或被修改文件时,或者它的HEADsuperproject中记录的commit不同时,使用"none"将会认为子模块被修改了。
    使用"untracked"时,当子模块只包含未跟踪内容时,他们不会被认为是脏模块。
    使用"dirty"忽略所有对子模块工作树的修改,只显示对存储在superproject中的提交的更改。
    使用"all"隐藏对子模块的所有更改。
    可通过配置变量status.submoduleSummary修改默认模式。

  • [--ignored[=<mode>]]
    也展示忽略文件。
    同子模块一样,此选项被使用默认是traditional模式。

    • traditional - 显示忽略文件和目录。除非--untracked-files=all被指定,在这种情况下将显示被忽略目录中的单个文件。
    • no - 不展示忽略文件。
    • matching - 显示匹配到的忽略文件通过pattern

    当使用matching模式时,将显示被忽略模式显示匹配的路径,如果匹配忽略模式,则会显示该模式但不会显示被忽略目录中的内容。如果目录不匹配忽略模式,但是又有被忽略的内容,则目录不会显示,被忽略的内容会被显示。

  • [-z]
    使用NUL字符中止,而不是LF。

  • [--column[=<options>], --no-column]
    显示未跟踪的文件在列表中。语法看配置变量column.status。当未指定参数时,--column等于always--no-column等于never

  • [--ahead-behind, --no-ahead-behind]
    显示或者不显示分支相对于上游分支的详细前/后记数。默认为true。

  • [--renames, --no-renames]
    不管用户如何配置,打开/关闭重命令检测。

  • [-M, --find-renames[=<n>]]
    打开重命令检测,可选的设置相似阈值,可以看git diff --find-rename了解用法详情。

  • [<pathspec>...]
    指定查看路径目录或文件。

短输出格式:

XY PATH
XY ORIG_PATH -> PATH
对于有合并冲突的路径,X和Y显示合并两边的修改状态。对于没有合并冲突的路径,X表示索引状态,Y表示工作树状态。
对于未跟踪路径,XY为??,其他状态码的解释如下:
	* ' ' = 未修改
	* M = 被修改
	* A = 添加
	* D = 删除
	* R = 重命名
	* C = 被拷贝
	* U = 被更新但是未合并
	被忽略的文件不被列出,除非--ignored选项生效,在这种情况下,XY是!!
	X          Y     Meaning
	-------------------------------------------------
	         [AMD]   not updated
	M        [ MD]   updated in index
	A        [ MD]   added to index
	D                deleted from index
	R        [ MD]   renamed in index
	[MARC]           index and work tree matches
	[ MARC]     M    work tree changed since index
	[ MARC]     D    deleted in work tree
	[ D]        R    renamed in work tree
	[ D]        C    copied in work tree
	-------------------------------------------------
	 D           D    unmerged, both deleted
	 A           U    unmerged, added by us
	 U           D    unmerged, deleted by them
	 U           A    unmerged, added by them
	 D           U    unmerged, deleted by us
	 A           A    unmerged, both added
	 U           U    unmerged, both modified
	 -------------------------------------------------
	 ?           ?    untracked
     !           !    ignored
     -------------------------------------------------
如果使用-b,则短格式状态前加一行
   	## branchname tracking info

2 导航页

git命令详细使用方式讲解及记录

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值