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
- 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>
Uma string que interpola
%(fieldname)
do resultado que está sendo exibido. Ele também interpola%%
para%
e%xx
, ondexx
são dígitos hexadecimais, interpola para o caractere com código hexadecimalxx
;%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
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]