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.47.0 no changes
- 2.46.1 09/13/24
- 2.44.1 → 2.46.0 no changes
- 2.44.0 02/23/24
- 2.43.1 → 2.43.5 no changes
- 2.43.0 11/20/23
- 2.42.1 → 2.42.3 no changes
- 2.42.0 08/21/23
- 2.40.1 → 2.41.2 no changes
- 2.40.0 03/12/23
- 2.39.1 → 2.39.5 no changes
- 2.39.0 12/12/22
- 2.38.1 → 2.38.5 no changes
- 2.38.0 10/02/22
- 2.36.1 → 2.37.7 no changes
- 2.36.0 04/18/22
- 2.35.1 → 2.35.8 no changes
- 2.35.0 01/24/22
- 2.31.1 → 2.34.8 no changes
- 2.31.0 03/15/21
- 2.30.2 → 2.30.9 no changes
- 2.30.1 02/08/21
- 2.30.0 12/27/20
- 2.27.1 → 2.29.3 no changes
- 2.27.0 06/01/20
- 2.22.1 → 2.26.3 no changes
- 2.22.0 06/07/19
- 2.18.1 → 2.21.4 no changes
- 2.18.0 06/21/18
- 2.17.0 → 2.17.6 no changes
- 2.16.6 12/06/19
- 2.14.6 → 2.15.4 no changes
- 2.13.7 05/22/18
- 2.12.5 no changes
- 2.11.4 09/22/17
- 2.10.5 09/22/17
- 2.9.5 07/30/17
- 2.8.6 07/30/17
- 2.2.3 → 2.7.6 no changes
- 2.1.4 12/17/14
- 2.0.5 12/17/14
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 ocore.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>
-
A string that interpolates
%(fieldname)
from the result being shown. It also interpolates%%
to%
, and%xXX
whereXX
are hex digits interpolates to character with hex codeXX
; for example%x00
interpolates to\0
(NUL),%x09
to\t
(TAB) and %x0a to\n
(LF). --format cannot be combined with-s
,-o
,-k
,-t
,--resolve-undo
and--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
outree
). 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]