Git
Português (Brasil) ▾Topics ▾Latest version ▾ git-ls-files last updated in 2.46.1

NOME

git-ls-files - Exiba as informações sobre os arquivos no índice e na árvore de trabalho

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 --deleted e --modified ao mesmo tempo. Esta opção não terá efeito quando qualquer uma das opções -t, --unmerged ou --stage estiver 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-unmatch para 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 -s ou -u nã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] --porcelain e git-diff-files[1] --name-status são quase sempre alternativas superiores; os usuários devem consultar git-status[1] --short ou git-diff[1] --name-status para 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-files em cada submódulo ativo no repositório. Atualmente, só há suporte para os modos --cached e --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.autocrlf nã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>

Uma string que interpola %(fieldname) do resultado que está sendo exibido. Ele também interpola %% para % e %xx, onde xx são dígitos hexadecimais, interpola para o caractere com código hexadecimal xx; %00 interpola para \0 (NUL), %09 para \t (TAB) e %0a para \n (LF) por exemplo. A opção --format não pode ser combinado com -s, -o, -k, -t, --resolve-undo e --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 commit ou tree). 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:

  1. 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.

  2. 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.

  3. 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:

  1. O arquivo especificado pela variável de configuração core.excludesfile, caso exista, ou o arquivo $XDG_CONFIG_HOME/git/ignore.

  2. O arquivo $GIT_DIR/info/exclude.

Através da opção --exclude-from=.

GIT

Parte do conjunto git[1]

scroll-to-top