目录 搜索
Guides gitattributes giteveryday gitglossary gitignore gitmodules gitrevisions gittutorial gitworkflows Administration git archive git bundle git clean git filter-branch git fsck git gc git instaweb git reflog Basic Snapshotting git add git commit git diff git mv git reset git rm git status Branching and Merging git branch git checkout git log git merge git mergetool git stash git tag Debugging git bisect git blame git grep Email git am git format-patch git request-pull git send-email External Systems git fast-import git svn Getting and Creating Projects git clone git init Git git annotate git archimport git bisect-lk2009 git check-attr git check-mailmap git check-ref-format git checkout-index git cherry git citool git column git credential git credential-cache git credential-store git cvsexportcommit git cvsimport git cvsserver git diff-files git diff-tree git difftool git fast-export git fetch-pack git fmt-merge-msg git get-tar-commit-id git gui git http-backend git http-fetch git http-push git imap-send git index-pack git interpret-trailers git ls-remote git ls-tree git mailinfo git mailsplit git merge-file git merge-index git merge-one-file git merge-tree git mktag git mktree git name-rev git notes git p4 git pack-objects git pack-redundant git pack-refs git parse-remote git patch-id git prune git prune-packed git quiltimport git receive-pack git remote-ext git remote-fd git remote-testgit git repack git replace git rerere git send-pack git sh-i18n git sh-setup git shell git show-branch git show-index git stripspace git unpack-file git unpack-objects git upload-archive git upload-pack git var git verify-commit git verify-tag git whatchanged git worktree Inspection and Comparison git describe git shortlog git show Miscellaneous api credentials api index gitcli gitcore tutorial gitcredentials gitcvs migration gitdiffcore githooks gitk gitnamespaces gitremote helpers gitrepository layout gitsubmodules gittutorial 2 gitweb gitweb.conf pack format User Manual Patching git apply git cherry-pick git rebase git revert Plumbing Commands git cat-file git check-ignore git commit-tree git count-objects git diff-index git for-each-ref git hash-object git ls-files git merge-base git read-tree git rev-list git rev-parse git show-ref git symbolic-ref git update-index git update-ref git verify-pack git write-tree Server Admin git daemon git update-server-info Setup and Config git git config git help Sharing and Updating Projects git fetch git pull git push git remote git submodule
文字

命名

git-ls-files  - 显示有关索引和工作树中文件的信息

概要

git ls-files [-z] [-t] [-v]                (--[cached|deleted|others|ignored|stage|unmerged|killed|modified])*                (-[c|d|o|i|s|u|k|m])*                [--eol]                [-x <pattern>|--exclude=<pattern>]                [-X <file>|--exclude-from=<file>]                [--exclude-per-directory=<file>]                [--exclude-standard]                [--error-unmatch] [--with-tree=<tree-ish>]                [--full-name] [--recurse-submodules]                [--abbrev] [--] [<file>…]

描述

这将目录缓存索引中的文件列表与实际工作目录列表合并,并显示两者的不同组合。

下面的一个或多个选项可用于确定显示的文件:

选项

-c   --cached

在输出中显示缓存的文件(默认)

-d   --deleted

在输出中显示已删除的文件

-m   --modified

在输出中显示已修改的文件

-o   --others

在输出中显示其他(即未跟踪的)文件

-i   --ignored

在输出中只显示被忽略的文件。在索引中显示文件时,只打印排除模式匹配的文件。显示“其他”文件时,只显示通过排除模式匹配的文件。

-s   --stage

在输出中显示暂存内容的模式位,对象名称和阶段编号。

--directory

如果整个目录被分类为“其他”,则只显示其名称(带有斜线)而不是其全部内容。

--no-empty-directory

不要列出空目录。没有 - 目录无效。

-u   --unmerged

在输出中显示未合并的文件(forces --stage)

-k   --killed

在文件系统上显示由于文件/目录冲突而需要删除的文件以使checkout-index成功。

-z

\ 0行输出终止,不要引用文件名。有关更多信息,请参阅下面的OUTPUT。

-x <pattern>   --exclude=<pattern>

跳过未匹配的文件匹配模式。请注意,模式是一个外壳通配符模式。有关更多信息,请参阅下面的EXCLUDE PATTERNS。

-X <file>   --exclude-from=<file>

从<file>读取排除模式; 每行1个。

--exclude-per-directory=<file>

读取仅适用于<file>中的目录及其子目录的其他排除模式。

--exclude-standard

在每个目录中添加标准Git排除项:.git / info / exclude,.gitignore和用户的全局排除文件。

--error-unmatch

如果任何<file>没有出现在索引中,则将其视为错误(返回1)。

--with-tree=<tree-ish>

当使用--error-unmatch将用户提供的<file>(即路径模式)参数展开为路径时,假定自从指定的<tree-ish>后索引中删除的路径仍存在。使用此选项-s-u选项没有任何意义。

-t

此功能已半弃用。对于编写脚本的目的,git-status [1] --porcelain和git-diff-files [1] --name-status几乎总是优越的选择,用户应该查看git-status [1] --short或git-diff [1] --name-status以获得更多用户友好的选择。

此选项在每行开始时用以下标记(后跟一个空格)标识文件状态:

H

缓存

S

skip-worktree

M

未合并

R

removed/deleted

C

modified/changed

K

to be killed

?

other

-v

-t标记为assume unchanged(请参阅git-update-index [1])的文件类似,但使用小写字母。

--full-name

从子目录运行时,该命令通常会输出相对于当前目录的路径。该选项强制相对于项目顶部目录输出路径。

--recurse-submodules

在存储库中的每个子模块上递归调用ls-files。目前只支持 - 高速缓存模式。

--abbrev=<n>

不显示完整的40字节十六进制对象行,只显示部分前缀。非默认位数可以用--abbrev = <n>来指定。

--debug

在描述文件的每一行之后,添加更多关于其缓存条目的数据。这旨在显示尽可能多的手动检查信息; 确切的格式可能会随时更改。

--eol

显示文件的<eolinfo>和<eolattr>。<eolinfo>是当“text”属性为“auto”(或未设置且core.autocrlf不为false)时由Git使用的文件内容标识。<eolinfo>是“文本”,“无”,“lf”,“crlf”,“混合”或“”。

“”表示该文件不是常规文件,它不在索引中或在工作树中无法访问。

它是“”,“ -  text”,“text”,“text = auto”,“text eol = lf”,“text eol = crlf”时检查或提交时使用的属性。由于支持Git 2.10“text = auto eol = lf”和“text = auto eol = crlf”。

索引(“i / <eolinfo>”)和工作树(“w / <eolinfo>”)中的<eolinfo>均显示为常规文件,后面跟着(“attr / <eolattr>”)。

不要将更多的参数解释为选项。

<file>

要显示的文件。如果没有给出文件,则显示与其他指定标准相匹配的所有文件。

输出

git ls-files只是输出文件名,除非--stage在这种情况下输出:

[<tag> ]<mode> <object> <stage> <file>

git ls-files --eol 将显示i / <eolinfo> <SPACES> w / <eolinfo> <SPACES> attr / <eolattr> <SPACE *> <TAB> <file>

git ls-files --unmergedgit ls-files --stage可用于检查对未合并的路径的详细信息。

对于未合并的路径,索引不是记录单个模式/ SHA-1对,而是记录多达三个这样的对; 一个来自阶段1中的树O,阶段2中的A以及阶段3中的B.这个信息可以由用户(或瓷器)用来查看最终应该在路径上记录什么。(有关状态的更多信息,请参阅git-read-tree [1])

如果没有这个-z选项,带有“不寻常”字符的路径名将按照配置变量的说明引用core.quotePath(请参阅git-config [1])。使用-z文件名是逐字输出的,并且该行由NUL字节终止。

排除模式

git ls-files可以在遍历目录树时使用“排除模式”列表,并查找指定何时指定标志 - 其他或--ignign的文件。gitignore [5]指定排除模式的格式。

这些排除模式来自这些地方,以便:

  1. 命令行标志--exclude = <pattern>指定一个模式。模式按照它们在命令行中出现的顺序排列。

  1. 命令行标志--exclude-from = <file>指定一个包含模式列表的文件。模式按照它们在文件中出现的顺序排列。

  1. 命令行标志--exclude-per-directory = <name> git ls-files通常指定每个目录中文件的名称.gitignore。较深目录中的文件优先。模式按照它们在文件中出现的顺序排列。

使用--exclude-from指定的文件中排除或读取的模式在命令行上指定的模式相对于目录树的顶部。从--exclude-per-directory指定的文件中读取的模式相对于模式文件出现的目录。

上一篇: 下一篇: