git status -> Mostra os arquivos que serão adicionados (testados) nos subdiretórios


88

Digamos que eu inicie um repositório git em uma pasta e tenha vários subdiretórios nele.

Tenho vários padrões de globbing .gitignorepara excluir arquivos nos subdiretórios. No entanto, quando faço isso git status antes de testar qualquer coisa , git status mostra apenas os nomes das subpastas que serão adicionadas, sem ser específico sobre quais arquivos em cada subdiretório serão adicionados (testados) se eu fizer isso git add ..

Curiosamente, porém, git statusé explícito sobre os arquivos que serão confirmados após eu preparar os arquivos com git add ..

Existe alguma maneira de pedir git statuspara ser explícito sobre os arquivos para os arquivos que seriam testados ?

Respostas:


147

Tentar:

git status -u

ou a forma longa:

git status --untracked-files

que mostrará arquivos individuais em diretórios não rastreados.

Aqui está a descrição detalhada da -uopção da página do manual git-status :

-u[<mode>]
--untracked-files[=<mode>]

Mostra arquivos não rastreados.

O parâmetro mode é opcional (o padrão é all) e é usado para especificar o tratamento de arquivos não rastreados; quando -unão é usado, o padrão é normal, ou seja, mostra arquivos e diretórios não rastreados.

As opções possíveis são:

  • no - Não mostrar arquivos não rastreados
  • normal - Mostra arquivos e diretórios não rastreados
  • all - Também mostra arquivos individuais em diretórios não rastreados.

O padrão pode ser alterado usando a status.showUntrackedFilesvariável de configuração documentada em git-config (1) .


9

Você pode simplesmente usar

git add --dry-run .

na raiz do seu repositório, que fornece uma lista de qualquer arquivo em qualquer subdiretório que seria adicionado durante a análise .gitignore.



1

Que tal colocar um .gitignorearquivo em seus subdiretórios, ao longo da linha de

# Ignore everything in this directory
*
# Except these file
!.gitignore
!file1
!file2
!file3

Não tenho nada no meu .gitignoreque se pareça com o que você postou (ou seja, ignorando diretórios ou subdiretórios com exceções). Além disso, por que isso importaria? A propósito, git statusretorna a lista de arquivos que seriam confirmados corretamente após o teste com git add ..
Amelio Vazquez-Reina

1
Eu sei, você não. Remova o diretório da raiz .gitignoree adicione-o .gitignoreao seu subdiretório - você pode ter mais de um. Eles se aninham
Adrian Cornish,

-1

use o comando git git ls-files -o para listar arquivos não rastreados

em vez disso -o use -c --cached Mostra os arquivos em cache na saída (padrão)

-d --deleted Mostra os arquivos excluídos na saída

-m --modified Mostra os arquivos modificados na saída


Esta questão é específica para mostrar quais arquivos serão adicionados, enquanto contabilizando .gitignore. Sua resposta ignora .gitignore.
Jared
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.