Setup and Config
Getting and Creating Projects
Basic Snapshotting
Branching and Merging
Sharing and Updating Projects
Inspection and Comparison
Patching
Debugging
External Systems
Server Admin
Guides
- gitattributes
- Command-line interface conventions
- Everyday Git
- Frequently Asked Questions (FAQ)
- Glossary
- Hooks
- gitignore
- gitmodules
- Revisions
- Submodules
- Tutorial
- Workflows
- All guides...
Administration
Plumbing Commands
- 2.46.2 → 2.51.1 no changes
-
2.46.1
2024-09-13
- 2.44.1 → 2.46.0 no changes
-
2.44.0
2024-02-23
- 2.43.1 → 2.43.7 no changes
-
2.43.0
2023-11-20
- 2.42.1 → 2.42.4 no changes
-
2.42.0
2023-08-21
- 2.40.1 → 2.41.3 no changes
-
2.40.0
2023-03-12
- 2.39.1 → 2.39.5 no changes
-
2.39.0
2022-12-12
- 2.38.1 → 2.38.5 no changes
-
2.38.0
2022-10-02
- 2.36.1 → 2.37.7 no changes
-
2.36.0
2022-04-18
- 2.35.1 → 2.35.8 no changes
-
2.35.0
2022-01-24
- 2.31.1 → 2.34.8 no changes
-
2.31.0
2021-03-15
- 2.30.2 → 2.30.9 no changes
-
2.30.1
2021-02-08
-
2.30.0
2020-12-27
- 2.27.1 → 2.29.3 no changes
-
2.27.0
2020-06-01
- 2.22.1 → 2.26.3 no changes
-
2.22.0
2019-06-07
- 2.18.1 → 2.21.4 no changes
-
2.18.0
2018-06-21
- 2.17.0 → 2.17.6 no changes
-
2.16.6
2019-12-06
- 2.14.6 → 2.15.4 no changes
-
2.13.7
2018-05-22
- 2.12.5 no changes
-
2.11.4
2017-09-22
-
2.10.5
2017-09-22
-
2.9.5
2017-07-30
-
2.8.6
2017-07-30
- 2.2.3 → 2.7.6 no changes
-
2.1.4
2014-12-17
-
2.0.5
2014-12-17
RESUMO
git ls-files [-z] [-t] [-v] [-f] [-c|--cached] [-d|--deleted] [-o|--others] [-i|--ignored] [-s|--stage] [-u|--unmerged] [-k|--killed] [-m|--modified] [--resolve-undo] [--directory [--no-empty-directory]] [--eol] [--deduplicate] [-x <pattern>|--exclude=<padrão>] [-X <file>|--exclude-from=<arquivo>] [--exclude-per-directory=<arquivo>] [--exclude-standard] [--error-unmatch] [--with-tree=<tree-ish>] [--full-name] [--recurse-submodules] [--abbrev[=<n>]] [--format=<formato>] [--] [<arquivo>…]
DESCRIÇÃO
Este comando mescla a lista dos arquivos no índice com a lista real dos diretórios de trabalho e mostra as diferentes combinações dos dois.
Diversos sinalizadores podem ser usados para determinar quais arquivos serão mostrados e cada arquivo pode ser impresso várias vezes se houver várias entradas no índice ou se vários status forem aplicáveis às opções de seleção de arquivo relevantes.
OPÇÕES
- -c
- --cached
-
Mostra todos os arquivos armazenados em cache no índice do Git, ou seja, todos os arquivos rastreados. (Esse é a predefinição caso nenhuma opção -c/-s/-d/-o/-u/-k/-m/--resolve-undo seja usada.)
- -d
- --deleted
-
Mostra arquivos com uma exclusão não preparada
- -m
- --modified
-
Mostra os arquivos com uma modificação não preparada (observe que uma exclusão não preparada também conta como uma alteração não preparada)
- -o
- --others
-
Exibe os outros arquivos (não monitorados) na saída
- -i
- --ignored
-
Mostra apenas os arquivos ignorados na saída. Deve ser usado explicitamente com uma opção -c ou -o. Ao exibir arquivos no índice (ou seja, quando usado com a opção -c), imprima somente os arquivos que correspondem a um padrão de exclusão. Ao mostrar "outros" arquivos (ou seja, quando usado com a opção -o), mostre apenas aqueles correspondentes a um padrão de exclusão. As regras predefinidas de ignorar não são ativadas automaticamente; portanto, pelo menos uma das opções
--exclude*é necessária. - -s
- --stage
-
Exibe os bits do modo do conteúdo escalonado, o nome do objeto e o número do estágio na saída.
- --directory
-
Se um diretório inteiro for classificado como "other" (outro), mostre apenas o seu nome (com uma barra final) e não todo o seu conteúdo. Não tem qualquer efeito sem
-o/--others. - --no-empty-directory
-
Não liste os diretórios vazios. Não tem efeito sem a opção
--directory. - -u
- --unmerged
-
Mostra informações sobre arquivos não foram mesclados na saída, mas não mostra nenhum outro arquivo rastreado (impõem o uso da opção --stage, substitui a opção --cached).
- -k
- --killed
-
Mostra os arquivos não rastreados no sistema de arquivos que precisam ser removidos por causa de conflitos do arquivo/diretório para que os arquivos rastreados possam ser gravados.
- --resolve-undo
-
Mostra os arquivos que têm informações de resolver/desfazer no índice junto com as suas informações de resolver/desfazer. (as informações do resolver/desfazer são usadas para implementar o "git checkout -m $PATH", ou seja, para recriar conflitos de mesclagem que foram resolvidos acidentalmente)
- -z
-
A terminação \0 de linha na saída e não colocar aspas nos nomes dos arquivos. Consulte SAÍDA abaixo para obter mais informações.
- --deduplicate
-
Quando apenas os nomes dos arquivos forem exibidos, suprima as duplicatas que podem resultar de vários estágios durante uma mesclagem ou da opção
--deletede--modifiedao mesmo tempo. Esta opção não terá efeito quando qualquer uma das opções-t,--unmergedou--stageestiver em uso. - -x <padrão>
- --exclude=<padrão>
-
Ignora os arquivos não rastreados que correspondam ao padrão. Observe que o padrão é um padrão curinga do shell. Consulte PADRÃO DE SAÍDA abaixo para obter mais informações.
- -X <arquivo>
- --exclude-from=<arquivo>
-
Leia os padrões de exclusão do <arquivo>; 1 por linha.
- --exclude-per-directory=<arquivo>
-
Leia os padrões de exclusão adicionais que se aplicam somente ao diretório e seus subdiretórios em <arquivo>. Se estiver tentando emular a forma como os comandos porcelana funcionam, ao usar a opção
--exclude-standardé mais fácil e mais completo. - --exclude-standard
-
Adicione as exclusões padrão do Git: .git/info/exclude, .gitignore em cada diretório e o arquivo de exclusão global do usuário.
- --error-unmatch
-
Caso algum <arquivo> não apareça no índice, trate isso como um erro (retorno 1).
- --with-tree=<árvore>
-
Ao usar
--error-unmatchpara expandir os argumentos <arquivo> (ou seja, o padrão de caminho) fornecidos pelo usuário para caminhos, finja que os caminhos que foram removidos no índice desde o <tree-ish> nomeado ainda estão presentes. O uso dessa opção em conjunto com as opções-sou-unão faz sentido. - -t
-
Mostra as etiquetas da condição geral junto com os nomes dos arquivos. Observe que, para fins de script, git-status[1]
--porcelaine git-diff-files[1]--name-statussão quase sempre alternativas superiores; os usuários devem consultar git-status[1]--shortou git-diff[1]--name-statuspara obter alternativas mais fáceis de usar.Esta opção fornece um motivo para mostrar cada nome de arquivo, na forma de uma etiqueta da condição geral (que é seguida por um espaço e depois pelo nome do arquivo). As etiquetas de condição geral são todos os caracteres únicos da lista a seguir:
- H
-
um arquivo rastreado que não seja não mesclado "unmerged" ou "skip-worktree"
- S
-
arquivo rastreado que é "skip-worktree"
- M
-
o arquivo rastreado que não foi mesclado
- R
-
arquivo rastreado com remoção/exclusão não preparada
- C
-
arquivo rastreado com modificação/alteração não preparada
- K
-
caminhos não rastreados que fazem parte de conflitos do arquivo/diretório que impedem o check-out dos arquivos rastreados
- ?
-
arquivo não rastreado
- U
-
arquivo com informações de resolução-desfazer
- -v
-
Semelhante ao
-t, porém utilize as letras minúsculas para os arquivos marcados como assume unchanged ou assuma que não foi alterado (consulte git-update-index[1]). - -f
-
Semelhante ao
-t, porém utilize as letras minúsculas para os arquivos marcados como fsmonitor valid ou fsmonitor válido (consulte git-update-index[1]). - --full-name
-
Quando executado num subdiretório, o comando geralmente gera caminhos relativos ao diretório atual. Esta opção impõem os caminhos que serão gerados em relação ao diretório principal do projeto.
- --recurse-submodules
-
Invoque recursivamente o
ls-filesem cada submódulo ativo no repositório. Atualmente, só há suporte para os modos--cachede--stage. - --abbrev[=<n>]
-
Em vez de mostrar todas as linhas hexadecimais com 40 bytes do objeto, mostre o prefixo mais curto que tenha pelo menos <n> hexadígitos e que faça referência exclusiva ao objeto. Um número não padrão de dígitos pode ser especificado com
--abbrev=<n>. - --debug
-
Após cada linha que descreve um arquivo, adicione mais dados sobre a sua entrada no cache. O objetivo é mostrar o máximo de informações possível para inspeção manual; o formato exato pode mudar a qualquer momento.
- --eol
-
Mostra o <eolinfo> e o <eolattr> dos arquivos. O <eolinfo> é a identificação do conteúdo do arquivo usada pelo Git quando o atributo "text" é "auto" (ou não está definido ou o
core.autocrlfnão é falso). O <eolinfo> é "-text", "none", "lf", "crlf", "mixed" ou ""."" significa que o arquivo não é um arquivo comum, não está no índice ou não está acessível na árvore de trabalho.
O <eolattr> é o atributo usado no "check-out" ou fazendo o commit; ele é "", "-text", "text", "text=auto", "text eol=lf" ou "text eol=crlf". Desde o Git 2.10, há suporte para "text=auto eol=lf" e "text=auto eol=crlf".
Tanto o <eolinfo> no índice ("i/<eolinfo>") quanto na árvore de trabalho ("w/<eolinfo>") são mostrados para arquivos regulares, seguidos pelo ("attr/<eolattr>").
- --sparse
-
Caso o índice seja esparso, mostre os diretórios esparsos sem expandir aos arquivos contidos. Os diretórios esparsos serão mostrados com uma barra, como "x/" para um diretório esparso "x".
- --format=<formato>
-
A string that interpolates
%(fieldname) from the result being shown. It also interpolates%%to%, and%xXXwhereXXare hex digits interpolates to character with hex codeXX; for example%x00interpolates to \0 (NUL),%x09to \t (TAB) and %x0a to \n (LF). --format cannot be combined with-s,-o,-k,-t,--resolve-undoand--eol. - --
-
Não interprete mais argumentos como opções.
- <arquivo>
-
Arquivos para exibir. Caso nenhum arquivo seja informado, todos os arquivos que coincidam com outros critérios informados serão mostrados.
SAÍDA
git ls-files apenas gera os nomes dos arquivos, a menos que a opção --stage seja utilizado; nesse caso, ele gera:
[<tag> ]<modo> <objeto> <estágio> <arquivo>
git ls-files --eol will show i/<eolinfo><SPACES>w/<eolinfo><SPACES>attr/<eolattr><SPACE*><TAB><arquivo>
Os comando git ls-files --unmerged e o git ls-files --stage podem ser utilizados para examinar as informações detalhadas sobre os caminhos não mesclados.
Para um caminho não mesclado, em vez de registrar um único par de modo/SHA-1, o índice registra até três desses pares; um da árvore O no estágio 1, A no estágio 2 e B no estágio 3. Estas informações podem ser usadas pelo usuário (ou pela porcelana) para ver o que deve ser registrado no caminho. (para mais informações consulte git-read-tree[1])
Sem a opção z, os pathnames com os caracteres "incomuns" são citados conforme explicado na variável de configuração core.quotePath (consulte git-config[1]). Utilizando a opção -z, o nome do arquivo é gerado literalmente e a linha é finalizada com um byte NUL.
É possível imprimir em um formato personalizado usando a opção --format, que é capaz de interpolar diferentes campos usando uma notação %(fieldname). Por exemplo, se você se importa apenas com os campos "objectname" e "path", você pode executar com um comando "--format" específico como
git ls-files --format='%(objectname) %(caminho)'
NOME DOS CAMPOS
A maneira como cada caminho é mostrado pode ser personalizada com o uso da opção --format=<formato>, onde a %(fieldname) na string <formato> são interpolados nos vários aspectos no índice da entrada. Os seguintes "fieldname" são considerados:
- objectmode
-
O modo do arquivo que está registrado no índice.
- objecttype
-
O tipo de objeto do arquivo que está registrado no índice.
- objectname
-
O nome do arquivo que está registrado no índice.
- objectsize[:padded]
-
O tamanho do objeto do arquivo que está registrado no índice ("-" se o objeto for um
commitoutree). Ele também oferece compatibilidade a um formato com tamanho preenchido por "%(objectsize:padded)". - estágio
-
O estágio do arquivo que é registrado no índice.
- eolinfo:index
- eolinfo:worktree
-
O <eolinfo> (consulte a descrição da opção
--eol) do conteúdo no índice ou para o caminho na árvore de trabalho. - eolattr
-
O <eolattr> (consulte a descrição da opção
--eol) que se aplica ao caminho. - caminho
-
O nome do caminho do arquivo que está registrado no índice.
EXCLUIR PADRÕES
O comando git ls-files pode usar uma lista de "padrões de exclusão" ao percorrer a árvore de diretórios e encontrar arquivos para mostrar quando as opções --others ou --ignored forem usados. O gitignore[5] especifica o formato dos padrões de exclusão.
Esses padrões de exclusão podem ser especificados nos seguintes locais, em ordem:
-
A opção de linha de comando
--exclude=<padrão> especifica um único padrão. Os padrões são ordenados na mesma ordem em que aparecem na linha de comando. -
As opções de linha de comando
--exclude-from=<arquivo> especifica um arquivo que contém uma lista de padrões. Os padrões são ordenados na mesma ordem em que aparecem no arquivo. -
A opção de linha de comando
--exclude-per-directory=<nome> especifica um nome de arquivo em cada diretório que o comando git ls-files examina, normalmente.gitignore. Os arquivos em diretórios mais profundos têm precedência. Os padrões são ordenados na mesma ordem em que aparecem nos arquivos.
Um padrão especificado na linha de comando com --exclude ou lido do arquivo especificado com --exclude-from é relativo ao topo da árvore de diretórios. Um padrão lido de um arquivo especificado através da opção --exclude-per-directory é relativo ao diretório onde o arquivo de padrão aparece.
Em geral, você deve poder usar --exclude-standard quando quiser que as regras de exclusão sejam aplicadas da mesma forma que os comandos porcelana. Para imitar o que a opção --exclude-standard especifica, você pode usar --exclude-per-directory=.gitignore e, em seguida, especificar:
-
O arquivo especificado pela variável de configuração
core.excludesfile, caso exista, ou o arquivo$XDG_CONFIG_HOME/git/ignore. -
O arquivo
$GIT_DIR/info/exclude.
Através da opção --exclude-from=.
GIT
Parte do conjunto git[1]